function validate_field(form_name,field_name,field_type,errorMsg){
 var field=eval("document."+form_name+"."+field_name);
 var alphanum=/^[0-9a-zA-Z_]+$/;
 var alphanum_space=/^[0-9a-zA-Z_ .;:]+$/;
 var argv=validate_field.arguments;
 var return_value=true;
switch(field_type){
 case "alphaNum_no_space" :{
	   if(!field.value.match(alphanum) || field.value=='')
		 {
           field.focus();
		   field.style.backgroundColor = 'yellow'
           alert(errorMsg);
		   return_value = false;
		 }
		 else{
		   field.style.backgroundColor = ''
		 }
	 } 
	 break;// END case
	 
case "alphaNum" :{
	   if(!field.value.match(alphanum_space) || field.value=='')
		 {
           field.focus();
		   field.style.backgroundColor = 'yellow'
           alert(errorMsg);
		   return_value = false;
		 }
		 else{
		   field.style.backgroundColor = ''
		 }
	 } 
	 break;// END case
	 
case "notNull" :{
	   if(field.value=='')
		 {
           field.focus();
		   field.style.backgroundColor = 'yellow'
           alert(errorMsg);
		   return_value = false;
		 }
		 else{
		   field.style.backgroundColor = ''		 
		 }
	 }
	 break;// END case
	 
// form_name, field, field_type, erroMsg, [min_value], [max_value]	
case "int_notNull" :{
	  if(field.value == '' || isNaN(field.value) 
		   ||	(arguments[4] != '' && field.value < arguments[4])	// daca e pusa valoare de MINIM, si valoarea e mai mica decat MINIM
		   ||	(arguments[5] != '' && field.value > arguments[5]))	// daca e pusa valoare de MAXIM, si valoarea e mai mica decat MAXIM
		 {
           field.focus();
		   field.style.backgroundColor = 'yellow'
           alert(errorMsg);
		   return_value = false;
		 }
		 else{
		   field.style.backgroundColor = ''
		 }
	 } 
	 break;// END case

// form_name, field, field_type, erroMsg, [min_value], [max_value]	 
case "int" :{
	  if(isNaN(field.value) 
		   ||	(arguments[4] != '' && field.value < arguments[4])	// daca e pusa valoare de MINIM, si valoarea e mai mica decat MINIM
		   ||	(arguments[5] != '' && field.value > arguments[5]))	// daca e pusa valoare de MAXIM, si valoarea e mai mica decat MAXIM
		 {
           field.focus();
		   field.style.backgroundColor = 'yellow'
           alert(errorMsg);
		   return_value = false;
		 }
		 else{
		   field.style.backgroundColor = ''
		 }
	 } 
	 break;// END case

case "email" :{
	var email=/^(\w+[\-\.])*\w+@(\w+\.)+[A-Za-z]+$/;
	if(!email.test(field.value)){
	   alert(errorMsg);
	   field.focus;
	   field.style.backgroundColor = 'yellow'
	   return_value = false;
	 }
	 else{
	   field.style.backgroundColor = ''
	 }
	} 
	break;// END case	
	
case "radio":{
	var return_value = false 
	for(var i=0; i<field.length; i++){ 
			if(field[i].checked == true) return_value = true 
		} 
	 if(!return_value){
			alert(errorMsg)
		}
	}	
	break;// END case	
	
} // end switch
 return return_value;
} // end function validate_field()

// live form input validator
function validate(field, type){
 switch(type){
  case "float" : 
  if(field.value !='')
    if(isNaN(field.value)){
	 field.style.border = '1px solid red'
	 alert(msg_incorect_value)
	 field.focus(); 
	 field.select();
	 return false;
	}
	else{
	 field.value = parseFloat(field.value).toFixed(2)
	 field.style.border = '1px solid #3c9fd0'
	 return true;
	}
   break;

  case "number" : 
   if(field.value !='')
    if(isNaN(field.value)){
	 field.style.border = '1px solid red'
	 alert(msg_incorect_value)
	 field.focus(); 
	 field.select();
	 return false;
	}
	else{
	 field.style.border = '1px solid #3c9fd0'
	 return true;
	}
  break;
   
  case "year_cc" :
		var max = new Date().getFullYear() + 4;
		var min = new Date().getFullYear();
		 if(field.value != ''){ // daca exista o valoare in camp
			 if(isNaN(field.value) || field.value < min || field.value > max){ // daca NU e corecta
			  field.style.border = '1px solid red'
			  alert(msg_incorect_value)
			  field.focus()
			  return false
			 }
			 else{ // daca e corecta
			  field.style.border = '1px solid #3c9fd0'
			 }
		 }
		 else{
		  field.style.border = '1px solid #3c9fd0'
		 }		
   break;
   
  case "year" :
		var max = new Date().getFullYear();
		var min = 1900;
		 if(field.value != ''){ // daca exista o valoare in camp
			 if(isNaN(field.value) || field.value < min || field.value > max){ // daca NU e corecta
			  field.style.border = '1px solid red'
			  alert(msg_incorect_value)
			  field.focus()
			  return false
			 }
			 else{ // daca e corecta
			  field.style.border = '1px solid #3c9fd0'
			 }
		 }
		 else{
		  field.style.border = '1px solid #3c9fd0'
		 }				
   break;
   
  case "day" :
		var max = 31;
		var min = 1;
		 if(field.value != ''){ // daca exista o valoare in camp
			 if(isNaN(field.value) || field.value < min || field.value > max){ // daca NU e corecta
			  field.style.border = '1px solid red'
			  alert(msg_incorect_value)
			  field.focus()
			  return false
			 }
			 else{ // daca e corecta
			  field.style.border = '1px solid #3c9fd0'
			 }
		 }
		 else{
		  field.style.border = '1px solid #3c9fd0'
		 }				
   break;     
 }

}
