var firsterrorfld='';

function ValidateAllForm(formname, sectionname) 
{
	var errorlist = '';
	var cellref = '';
	var bsection = true;
	
	firsterrorfld=null;

	var elem = document.getElementById(formname).elements;
	for(var i = 0; i < elem.length; i++)
	{
		var localInput = elem[i]
		
		if(localInput)
		{
			bsection=true;
			sectionFld=localInput.getAttribute('section')
			if (sectionFld==null)
			{
				sectionFld='';
			}
			if (sectionFld != sectionname)
			{
				bsection=false;
			}

			if (bsection)
			{

				var iValue='';

				localInput.style.borderColor=''
				localInput.style.backgroundColor=''

				var bCheckForNumeric=false;
				
				switch(localInput.tagName)
				{
					case "SELECT":
						var sel_ind = localInput.selectedIndex;
						if (sel_ind >= 0)
						{
							iValue = localInput[sel_ind].value;
						}
						break;
					case "TEXTAREA":
						iValue = localInput.value;
						bCheckForNumeric=true;
						break;
					case "INPUT":
						if(localInput.type == 'checkbox')
						{
							//iValue = (localInput.checked?'on':'off');
							iValue = (localInput.checked?localInput.value:'');
						}
						else
						{
							iValue = localInput.value;
							bCheckForNumeric=true;
						}
						break;
				}
				
				var bNumericCheckPassed=true;
				if (bCheckForNumeric)
				{
					var numericFld=localInput.getAttribute('numeric')
					if (numericFld)
					{
						iValue=cleanCommas(iValue);
						localInput.value=iValue;
						if (!IsItNumeric(iValue))
						{
							bNumericCheckPassed=false;
						}
					}
				}
				
				var bDateCheckPassed=true;
				if (bCheckForNumeric)
				{
					var dtFld=localInput.getAttribute('checkdate')
					if (dtFld)
					{
						if (!isDate(iValue))
						{
							bDateCheckPassed=false;
						}
					}
				}
			
				parentdiv=localInput.getAttribute('parentdiv')
				parentdiv2=localInput.getAttribute('parentdiv2')
				parentdiv3=localInput.getAttribute('parentdiv3')

				// Checks if the required attribute is present - if so, then checks this element has a value
				requiredFld=localInput.getAttribute('required')
				if (requiredFld)
				{
					var elemDisplay=localInput;
					var elemDisplay2=localInput;
					var elemDisplay3=localInput;
					if (parentdiv)
					{
						elemDisplay=document.getElementById(parentdiv);
						elemDisplay2=document.getElementById(parentdiv);
						elemDisplay3=document.getElementById(parentdiv);
					}
					if (parentdiv2)
					{
						elemDisplay2=document.getElementById(parentdiv2);
						elemDisplay3=document.getElementById(parentdiv2);
					}
					if (parentdiv3)
					{
						elemDisplay3=document.getElementById(parentdiv3);
					}

					if ((elemDisplay.style.display != 'none') && (elemDisplay2.style.display != 'none') && (elemDisplay3.style.display != 'none'))
					{
					
						var notzero=localInput.getAttribute('notzero')
						if (notzero == 'true')
						{
							if ((iValue == '0') || (iValue == '0.00') || (iValue == '0.0') || (iValue == '00') || (iValue == '000'))
							{
								iValue='';
							}
						}					
					
						if ((!bDateCheckPassed) || (!bNumericCheckPassed) || ((requiredFld != '') && (iValue == '')))
						{
							errorlist += '- ' + localInput.getAttribute('descr') + '<br>';
							localInput.style.borderColor='red'
							localInput.style.backgroundColor='#f8e6e7'

							if (firsterrorfld == null)
							{
								firsterrorfld = localInput;
							}
						}
					}
				}

				// Checks if the requiredif attribute is present - if so, then it makes this element required if the other has a value
				requiredFldIf=localInput.getAttribute('requiredif')
				if ((requiredFldIf) && (requiredFld != '') && (iValue == ''))
				{
					var elemDisplay=localInput;
					var elemDisplay2=localInput;
					if (parentdiv)
					{
						elemDisplay=document.getElementById(parentdiv);
						elemDisplay2=document.getElementById(parentdiv);
					}
					if (parentdiv2)
					{
						elemDisplay2=document.getElementById(parentdiv2);
					}

					if ((elemDisplay.style.display != 'none') && (elemDisplay2.style.display != 'none'))
					{
						iValue='';
						var requiredFldElement = document.getElementById(requiredFldIf)
						switch(requiredFldElement.tagName)
						{
							case "SELECT":
								var sel_ind = requiredFldElement.selectedIndex;
								if (sel_ind >= 0)
								{
									iValue = requiredFldElement[sel_ind].value;
								}
								break;
							case "TEXTAREA":
								iValue = requiredFldElement.value;
								break;
							case "INPUT":
								if(requiredFldElement.type == 'checkbox')
								{
									//iValue = (requiredFldElement.checked?'on':'off');
									iValue = (requiredFldElement.checked?localInput.value:'');
								}
								else
								{
									iValue = requiredFldElement.value;
								}
								break;
						}
						
						var notzero=localInput.getAttribute('notzero')
						if (notzero == 'true')
						{
							if ((iValue == '0') || (iValue == '0.00') || (iValue == '0.0') || (iValue == '00') || (iValue == '000'))
							{
								iValue='';
							}
						}

						//var reqvalue=localInput.getAttribute('requiredvalue')
						//if (reqvalue == null)
						//{
						//	reqvalue=''
						//}

						if ((!bDateCheckPassed) || (!bNumericCheckPassed) || ((requiredFldElement != '') && (iValue != '')))
						{
							errorlist += '- ' + localInput.getAttribute('descr') + '<br>';
							localInput.style.borderColor='red'
							localInput.style.backgroundColor='#f8e6e7'
							
							if (firsterrorfld == null)
							{
								firsterrorfld = localInput;
							}
						}
					}
				}
			}
		}
		else
		{
			break;
		}
	}
	return errorlist;
}

