function checkform(of)
	{
		if(!document.getElementById || !document.createTextNode){return;}
		if(!document.getElementById('obrigatorios')){return;}
		var errorID='msg-erro';
		var errorClass='erro';
		var errorMsg='Por favor preencha corretamente os campos assinalados.';
		var reqfields=document.getElementById('obrigatorios').value.split(',');
		if(document.getElementById(errorID))
		{
			var em=document.getElementById(errorID);
			em.parentNode.removeChild(em);
		}
		for(var i=0;i<reqfields.length;i++)
		{
			var f=document.getElementById(reqfields[i]);
			if(!f){continue;}
			f.className='';
		}
		for(var i=0;i<reqfields.length;i++)
		{
			var f=document.getElementById(reqfields[i]);
			if(!f){continue;}
			switch(f.type.toLowerCase())
			{
				case 'text':
					if(f.value=='' && f.id!='email'){cf_adderr(f);}
					if(f.id=='email' && !cf_isEmailAddr(f.value)){cf_adderr(f);}
				break;
				case 'textarea':
					if(f.value==''){cf_adderr(f);}
				break;
				case 'checkbox':
					if(!f.checked){cf_adderr(f);}
				break;
				case 'select-one':
					if(!f.selectedIndex && f.selectedIndex==0){cf_adderr(f);}
                            	break;
			}
		}
		return !document.getElementById(errorID);

	function cf_adderr(o)
		{
			o.className=errorClass;
			if(!document.getElementById(errorID))
			{
				var em=document.createElement('div');
				em.id=errorID;
				var newp=document.createElement('p');
				newp.appendChild(document.createTextNode(errorMsg));
                                em.appendChild(newp);
				for(var i=0;i<of.getElementsByTagName('input').length;i++)
				{
					type = of.getElementsByTagName('input')[i].type;
					if((/submit/i.test(type)) || (/image/i.test(type)))
					{
						var sb=of.getElementsByTagName('input')[i];
						break;
					}
				}
				if(sb)
				{
					sb.parentNode.insertBefore(em,sb);
				}	
			} 
		}

	function cf_isEmailAddr(str) 
		{
		    return str.match(/^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/);
		}
	}