function checkFormByCSS(form, action){
	var alertBox = $('alertBox');
	if(alertBox) alertBox.hide();
	var form = $(form);
	var sendAction=true;
	if(form){
		var formElements = form.descendants();
		formElements.each(function(item) {
			item.removeClassName('notValid');
			
			var notNull = item.hasClassName("checkNotNull");
			var email = item.hasClassName("checkMail");
			var isNotTitle = item.hasClassName('checkValueIsNotTitle');
			var checkChecked = item.hasClassName('checkChecked');
			var checkRadioNotNull = item.hasClassName("checkRadioNotNull");
			
			
			if	(notNull || email || isNotTitle || checkChecked || checkRadioNotNull){
				var value;
				if(item.type && item.name && item.type=="radio"){
					value=$$('input[name="' + item.name + '"]').any(function(el) { return el.checked; });
				}
				else{
					try{
						value = item.getValue();
					}catch(er){}
					if(value == undefined && item.innerHTML){
						value = item.innerHTML;
						}
				}
				var title = (item.hasAttribute('title'))?item.title:false;
				if (
					notNull && value.match(/^\s*$/gi)
					|| email &&  !checkEmailRegex(value)
					|| isNotTitle && value == title
					|| checkChecked && value == null
					|| checkRadioNotNull && (value == null || value == false)
					)
				{	
					overline(item);
					sendAction=false;
				}
			}
		});
	}else{
		sendAction=false;
	}
	if(sendAction){
		eval(action);
	}else{
		
		if(alertBox) alertBox.show();
	}
}


function overline(formElement){
	var parent = formElement.up('.overLine');
	if(!$(parent).hasClassName('notValid'))
		$(parent).addClassName('notValid');
}

function checkEmailRegex(email) {
   var reg = /^[a-z0-9._-]+@[a-z0-9.-]{2,}[.][a-z]{2,3}$/i;
   return (reg.exec(email)!=null)
}
