$.fn.extend({
	valida:function(){
		var classValida='valida';
		var classErro='error';
		var valido=true;
		var nm='';
		var cc=0;
		var fds=new Array();
		var Frm=this[0];
		var sel=false;
		var rad=false;
		for(var zz=0;zz<Frm.elements.length;zz++){
			n=Frm.elements[zz];
			nm=n.name;
			if(nm!=''&&n.disabled==false){
				if($.inArray(nm,fds)==-1){
					switch(n.type.split('-')[0]){
						case 'select':
							if($('#'+n.id).hasClass(classValida)){
								for(var s=0;s<n.options.length;s++){
									if(n.options[s].selected&&n.options[s].value)sel=true;
								}
								if(sel){
									$('#'+n.id).removeClass(classErro);
									sel=false;
								}else{
									$('#'+n.id).addClass(classErro);
									valido=false;
								}
							}
							break;
						case 'checkbox':
							if($('#'+n.id).hasClass(classValida)){
								if(n.checked){
									$('#'+n.id).removeClass(classErro);
									break;
								}else{
									$('#'+n.id).addClass(classErro);
									valido=false;
								}
							}
							break;	
						case 'radio':
							$('input[name='+nm+']').each(function(ii,nn){
								if($(nn).hasClass(classValida)){
									if(nn.checked)rad=true;
								}
							});
							if(rad){
								$('#'+nm+'_td').removeClass(classErro);
								rad=false;
							}else{
								$('#'+nm+'_td').addClass(classErro);
								valido=false;
							}
							break;
						case 'hidden':
							break;
						default:
							if($('#'+n.id).hasClass(classValida)){
								if(n.value)$('#'+n.id).removeClass(classErro);
								else{
									$('#'+n.id).addClass(classErro);
									valido=false;
								}
							}
							break;
					}					
					fds[cc]=nm;
					cc++;
				}
			}
		}
		return valido;
	}
});