function valid_form(frm)
{
	isFilled=true;
		
	for ( var i=0; i<frm.getElementsByTagName("label").length; i++ )
	{
		element_label = frm.getElementsByTagName("label")[i];
		txt_label = element_label.firstChild.nodeValue;
		class_label = element_label.className;

		if(element_label.getAttribute("for"))
			id_champs = element_label.getAttribute("for");
		else
			id_champs = element_label.getAttribute("htmlFor");
			
		if(id_champs!=null)
		{
			fields=id_champs.split(';');
			
			if(fields.length==1)
			{
				if(fields[0].substring(fields[0].length-6)=="_clone")
				{
					shortfields=fields[0].substring(0,fields[0].length-6);
					champs1 = document.getElementsByName(shortfields)[0];
					champs2 = document.getElementsByName(fields[0])[0];
				
					if(champs1.value==champs2.value)
						empty_result=isEmpty(fields[0]);
					else
						empty_result=1;
				}
				else
					empty_result=isEmpty(fields[0]);
			}
			else
			{
				empty_result=0;
				for( var j=0; j<fields.length; j++)
				{
					if(isEmpty(fields[j])==1)
						empty_result=1;
				}
			}
			
			if(empty_result==1)
			{
				if(typeof window.changeStyle == 'function') changeStyle(element_label,true);
				isFilled=false;
			}
			else if(empty_result==0)
				if(typeof window.changeStyle == 'function') changeStyle(element_label,null);
		}
	}

return isFilled;
}


function isEmpty(_nomchamps)
{
	champs = document.getElementsByName(_nomchamps)[0];
				
	if(champs!=null)
	{
		if ( (champs.tagName == "INPUT" && (champs.getAttribute("type") == "text" || champs.getAttribute("type") == "file")) || champs.tagName == "TEXTAREA")
		{
			if(champs.value=='')
				return 1;
		}
		else if (champs.tagName == "SELECT")
		{
			if(champs.value==-1 || champs.value=='')
				return 1;
		}
		else if (champs.tagName == "INPUT" && champs.getAttribute("type") == "radio")
		{
			if(getRadio(_nomchamps,3)==-1)
				return 1;
		}
		else
			return -1;
		
		return 0;
	}
	else
		return -1;
}

function getRadio(_idradio,_max)
{
	champs = document.getElementsByName(_idradio);
	for (var k=_max;k>=0;k--)
	{
		if(champs[k])
		{
			if (champs[k].checked==true)
				return champs[k].value;
		}
	}

	return -1;
}
