  var mandatories = new Array();
		function checkMandatory(id)
		{
			 var returnType=true;								
			 var ma;
				if ( id && id.length > 0 )
				  ma = mandatories[id];
				else
				  ma = mandatories;
						
				if ( ma.length < 1 ) return true;
				
				for (i=ma.length-1; i>-1; i--)
				{
					  try	
							{
								 var obj = document.getElementById(ma[i]);
									if ( document.all[ma[i]].length > 1 )
									  for ( x=0;x<document.all[ma[i]].length; x++ )
											  if ( getParentWithAttributeValue( document.all[ma[i]][x], "className", "tPaneLeftScroller" ).nodeName.toLowerCase() != 'body' )
													  obj = document.all[ma[i]][x];
								   if ( returnType )
								     returnType = fieldTypeCheck( obj );
								  	else
								  	  fieldTypeCheck( obj );
							}catch(e) {}
				}	
				
				if ( g_lastMandFail && g_mandBlurb.length > 0 )
				{
					  showToolTip( g_lastMandFail, g_mandBlurb, getEm(160) );
					  g_lastMandFail=false;
							g_mandBlurb='';
				} else try { hideToolTip(); } catch(e) {}
				
				try { returnType=externalCheckMandatory(id, returnType); } catch(e) {}
				return returnType;
		}
		
		var g_lastMandFail=false;
		var g_mandBlurb='';
		function fieldTypeCheck(o)
		{
			  var highlight=o;
					var passed=false;
			  if ( o.parentNode.className=='dd' )
					{
						  highlight=document.all[o.name+"_Ignore"];
						  if ( o.value != 'select' ) 
											passed=true;
								else g_mandBlurb='';//dont want a tip on selects....should be obvious.
					} 
					else if ( o.id.indexOf("_Display") > -1 )
					{
						 if ( o.innerHTML != 'dd-mm-yyyy' )
							  passed=true;
							else g_mandBlurb='';
					}
					else if ( o.nodeName == 'SELECT' )
					{
						  if ( o.value != 'select' ) 
											passed=true;
								else g_mandBlurb='';						  
					}
					else passed = fieldValueCheck(o, parseInt(o.getAttribute("fieldCheck")) );
     
					if ( passed )
					  cssRemoveProperty( highlight, "background-color" );
					else
					{
		  		 highlight.style.backgroundColor='#FF9B9B';
							g_lastMandFail=highlight;
		  			highlight.focus();						
					}
					return passed;
		}
		
		function fieldValueCheck(o, fieldCheck)
		{
			  switch ( fieldCheck )
					{
								case 3 : //must be numeric								  
								  if ( o.value.length < 1 || isNaN(o.value) ) 
										{
											 g_mandBlurb = 'This mandatory field must also be numeric.';
											 return false;
										}	else return true;
								case 13 : //must be a number > 0								  
								  if ( o.value.length < 1 || isNaN(o.value) || parseFloat(o.value) <= 0 )
										{
											 g_mandBlurb = 'This mandatory numeric field must be greater than zero.';
											 return false;
										}	else return true;
								default : //passed length check so treat as valid;								  
  								//g_mandBlurb = 'This is a mandatory field and cannot be left blank.';
								  if ( o.value.length < 1 )
										{
											 g_mandBlurb='';
											 return false;
										}	else return true;					
					}	
		}