function validateForm(obj) {
	var form_validator = new Array();
	cleanErrorMsg(obj);
	/*star checkboxlist*/
	var listNodes = $(obj).getElementsByTagName('tbody');
	var list_nodes = $A(listNodes);
	
	list_nodes.each(function(node) {
			if (node.style.display!='none') {
			var _checkboxlistNodes = $(node).getElementsBySelector('input[validate="checkboxlist"]');
			form_validator[form_validator.length+1] = valid_checkboxlist(_checkboxlistNodes);
			var _selectlistNodes = $(node).getElementsBySelector('select[validate="selectlist"]');
			form_validator[form_validator.length+1] = valid_select(_selectlistNodes);
			} else {
			var _checkboxlistNodes = $(node).getElementsBySelector('input[validate="checkboxlist"]');
			var _selectlistNodes = $(node).getElementsBySelector('select[validate="selectlist"]');
			clean_selectlist(_selectlistNodes);
			clean_checkboxlist(_checkboxlistNodes);
			}
		});
	/*end checkboxlist*/
	
	/*start empty*/
	var emptyNodes = $(obj).getElementsBySelector('[validate="empty"]');
	form_validator[form_validator.length+1] = valid_empty(emptyNodes);
	/*end empty*/
	
	/*start emptyp*/
	var emptypNodes = $(obj).getElementsBySelector('[validate="emptyp"]');
	form_validator[form_validator.length+1] = valid_emptyp(emptypNodes);
	/*end emptyp*/
	
	/*start e-mail verification*/
	var emailNodes = $(obj).getElementsBySelector('[validate="email"]');
	form_validator[form_validator.length+1] = valid_email(emailNodes);	
	/*end e-mail verification*/
	
	/*start latin numeric verification*/
	/*var latinNodes = $(obj).getElementsBySelector('[validate="latinnumeric"]');
	form_validator[form_validator.length+1] = valid_latin_numeric(latinNodes);	*/
	/*end latin numeric verification*/	
	
	/*start select*/
	var selectNodes = $(obj).getElementsBySelector('select[validate="select"]');
	form_validator[form_validator.length+1] = valid_select(selectNodes);
	/*end select*/
	
	/*start select*/
	var selectpNodes = $(obj).getElementsBySelector('select[validate="selectp"]');
	form_validator[form_validator.length+1] = valid_selectp(selectpNodes);
	/*end select*/
	
	/*start number*/
	var numberNodes = $(obj).getElementsBySelector('input[validate="number"]');
	form_validator[form_validator.length+1] = valid_number(numberNodes);
	/*end number*/
	
	/*start checkbox*/
	var emptyCheckbox = $(obj).getElementsBySelector('input[validate="checkbox"]');
	form_validator[form_validator.length+1] = valid_checkbox(emptyCheckbox);
	/*end checkbox*/
	/*start SUBMITING FORM*/
	for ( i = 0; i < form_validator.length; i++ ) {
		if (form_validator[i] == false) return false;
	}
	//ajax_updater_form(obj);
	$(obj).submit();
	/*end SUBMITING FORM*/
}
function cleanErrorMsg(obj) {
	var errNodes = $(obj).getElementsByClassName('error_msg');
	var nodes = $A(errNodes);
		nodes.each(function(node) {
			node.style.display='none';
		});
}

function valid_empty(emptyNodes) {
		var nodes = $A(emptyNodes);
		var no_errors = true;
		nodes.each(function(node) {
					if(!node.value.length) { 
					no_errors = false; 
					$(node).up('td',0).down('span.error_msg').style.display='block';
					}
		});
	return no_errors;
}

function valid_emptyp(emptyNodes) {
		var nodes = $A(emptyNodes);
		var no_errors = true;
		nodes.each(function(node) {
					if (node.up('p', 0).style.display!='none') {
					if(!node.value.length) { 
					no_errors = false; 
					$(node).up('td',0).down('span.error_msg').style.display='block';
					}}
		});
	return no_errors;
}


function valid_email(emailNodes) {
		var nodes = $A(emailNodes);
		var no_errors = true;
  		var reg1 = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/; // not valid e-mail
  		var reg2 = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/; // valid e-mail
		nodes.each(function(node) {
					if (!reg1.test(node.value) && reg2.test(node.value)) { // if syntax is valid
						return no_errors;
					}
					else {
						no_errors = false;
						$(node).up('td',0).down('span.error_msg').style.display='block';
					}
		});
	return no_errors;
}


/*function valid_latin_numeric(latinNodes) {
		var nodes = $A(latinNodes);
		var no_errors = true;
  		var reg = /[A-Za-z0-9]+/; //  valid 
		nodes.each(function(node) {
					if (!reg.test(node.value)) 
					{ // if syntax is not valid
						no_errors = false;
						$(node).up('td',0).down('span.error_msg').style.display='block';
					}
		});
	return no_errors;
}*/



	
	

  	


function valid_checkbox(emptyNodes) {
		var nodes = $A(emptyNodes);
		var no_errors = true;
		nodes.each(function(node) {
					if(!node.checked) { 
					no_errors = false; 
					$(node).up('td', 0).down('span.error_msg').style.display='block';
					}
		});
	return no_errors;
}

function valid_number(numberNodes) {
		var nodes = $A(numberNodes);
		var no_errors = true;
		nodes.each(function(node) {
					var val= parseInt(node.value);
  					if(isNaN(val)) { 
					no_errors = false; 
					$(node).up('td', 0).down('span.error_msg').style.display='block';
					}
		});
	return no_errors;
}

function valid_select(selectNodes) {
		var nodes = $A(selectNodes);
		var no_errors = true;
		nodes.each(function(node) {
					if(node.value=='0') { 
					no_errors = false; 
					$(node).up('td', 0).down('span.error_msg').style.display='block';
					}
		});
	return no_errors;
}

function valid_selectp(selectNodes) {
		var nodes = $A(selectNodes);
		var no_errors = true;
		nodes.each(function(node) {
					if (node.up('p', 0).style.display!='none') {
					if(node.value=='0') { 
					no_errors = false; 
					$(node).up('td', 0).down('span.error_msg').style.display='block';
					}
					}
		});
	return no_errors;
}

function valid_checkboxlist(checkboxlistNodes) {
	 var nodes = $A(checkboxlistNodes);
		if (!nodes.length) return true;
		var no_errors = false;
		nodes.each(function(node) {
				if (no_errors==false) {
					if(node.checked) { 
						$(node).up('td', 0).down('span.error_msg').style.display='none';
						no_errors = true; 
					} else {
						no_errors = false; 
						$(node).up('td', 0).down('span.error_msg').style.display='block';
					}
				}
		});
	return no_errors;
	 
}
function clean_checkboxlist(checkboxlistNodes) {
	 var nodes = $A(checkboxlistNodes);
		nodes.each(function(node) {
		node.checked = false;			
		});
}

function clean_selectlist(selectlistNodes) {
	 var nodes = $A(selectlistNodes);
		nodes.each(function(node) {
		node.value = '0';			
		});
}