function validate(forma) {
	var send = true;
	var form = forma;
	for(f = 0, fl = form.length; f < fl; f++) {
		if(form[f].className.match('fail')) form[f].className = form[f].className.replace(' fail','');
		if(form[f].type=='checkbox') form[f].parentNode.className = form[f].parentNode.className.replace('fail','');
		if(form[f].className.match('val_')) {
			var options=form[f].className.split("_");
			for(op = 1, opl = options.length; op < opl; op++) {
				var check = options[op].split("-");
				check[0] = check[0].split(" ")[0];
				if(check[1]) check[1] = check[1].split(" ")[0];
				switch(check[0]) {
					case 'min': if(form[f].value.length < check[1]) { form[f].className +=' fail'; send = false; } break;
					case 'max': if(form[f].value.length > check[1]) { form[f].className +=' fail'; send = false; } break;
					case 'num': pat = /^[- 0-9]*$/; if(!pat.test(form[f].value)) { form[f].className +=' fail'; send = false; } break;
					case 'phone': pat = /^[- 0-9]*$/; if(!pat.test(form[f].value)) { form[f].className +=' fail'; send = false; } break;
					case 'notnum': pat = /^[0-9]*$/; if(pat.test(form[f].value)) { form[f].className +=' fail'; send = false; } break;
					case 'nosp': if(form[f].value.match(' ')) { form[f].className +=' fail'; send = false; } break;
					case 'alp': pat = /^[a-zA-Z]*$/; if(!pat.test(form[f].value) || !form[f].value.length) { form[f].className +=' fail'; send = false; } break;
					case 'alpnum': pat = /^[0-9a-zA-Z]*$/; if(!pat.test(form[f].value) || !form[f].value.length) { form[f].className +=' fail'; send = false; } break;
					case 'date': pat = /(?:0[1-9]|[12][0-9]|3[01])\.(?:0[1-9]|1[0-2])\.(?:19|20\d{2})/; if(!pat.test(form[f].value)) { form[f].className +=' fail'; send = false; } break;
					case 'email': pat = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i; if(!pat.test(form[f].value)) { form[f].className +=' fail'; send = false; } break;
					case 'money': pat = /^[0-9.,-]*$/; if(!pat.test(form[f].value) || !form[f].value.length) { form[f].className +=' fail'; send = false; } break;
					case 'checked': if(!form[f].checked) { form[f].parentNode.className +=' fail'; send = false; } break;
					case 'selected': if(form[f].selectedIndex==0) { form[f].className +=' fail'; send = false; } break;
				}
			}
		}
	}
	return send;
}
function checkRequired(frmData) {
	var bFail;
	bFail = false; // Default to pass

	for(iElement = 0; iElement < frmData.elements.length; iElement++) {
		if(frmData.elements[iElement].className == 'form_required_field' || frmData.elements[iElement].className == 'form_failed_field') {
			if(frmData.elements[iElement].value == '') {
			bFail = true;

			frmData.elements[iElement].className = 'form_failed_field';
			} else {
				if(frmData.elements[iElement].id == "email"){
					if (validEmail(frmData.elements[iElement].value) == false) {
					bFail = true;
					frmData.elements[iElement].className = 'form_failed_field';
					}
					else{
					frmData.elements[iElement].className = 'form_required_field';
					}
				} else {
				frmData.elements[iElement].className = 'form_required_field';
				}
			}
		}
	}
	return !bFail;
}

function validEmail(emailaddr){
    var emailReg = "^[\\w-_\.]*[\\w-_\.]\@[\\w]\.+[\\w]+[\\w]$";
    var regex = new RegExp(emailReg);
    return regex.test(emailaddr);
} 


function checkFormx() {
  console.warn('xxx');
	if(!checkRequired(document.forms['form']) && (!checkCheckboxes('.req_chk') || $('req_text').value.length < 1)) {
      /*		if(document.all) {
      		} else {
      		
      */
	return false;
	} else return true;
} 
