
function CheckFormValue(id,type,min,req, field) {

	var pass, regex
	var msg='';
	

	pass=false;
	var el = Ext.get(id);
	if (el) {
		
		switch (type.toLowerCase()) {
			case 'string':
				pass=true;
				
			break;
			
			case 'number': 
				var regex = /^[0-9]{1,3}$/
				
				if (el.dom.value.match(regex)) {
					pass=true;
				} else {
					msg = String.format('<div class="error-msg"><label for="{1}"><strong>{0}</strong> is not a valid number.</label></div>', field, id);
				}
				break;

            case 'number2':
                var regex = /^[1-2]{1}$/

                if (el.dom.value.match(regex)) {
                    pass = true;
                } else {
                    msg = String.format('<div class="error-msg"><label for="{1}"><strong>{0}</strong> is not a valid number or cannot exceed 2.</label></div>', field, id);
                }
                break;
    
			case 'phone':
				var regex = /^[+]?([0-9]*[\/\.\s\-\(\)]|[0-9]+){3,24}$/
				
				if (el.dom.value.match(regex)) {
					pass=true;
				} else {
					msg = String.format('<div class="error-msg"><label for="{1}"><strong>{0}</strong> is not a valid phone number.<br/>Please use international format <i>+countrycode localcode phonenumber</i>.</label></div>', field, id);
				}		
			break;
			
			case 'cvc':
				var regex = /^[0-9]{3,5}$/
				
				if (el.dom.value.match(regex)) {
					pass=true;
				} else {
					msg = String.format('<div class="error-msg"><label for="{1}"><strong>{0}</strong> is not valid.</label></div>', field, id);
				}		
			break;
			
			case 'email':
				regex = /^[A-Z0-9._%+-]+@(?:[A-Z0-9-]+\.)+(?:[A-Z]{2}|aero|arpa|asia|biz|cat|com|coop|edu|gov|info|int|jobs|mil|mobi|museum|name|net|org|pro|tel|travel)$/i;
				if (el.dom.value.match(regex)) {
					pass=true;
				} else {
					msg = String.format('<div class="error-msg"><label for="{1}"><strong>{0}</strong> is not a valid email.</label></div>', field, id);
				}		
				
			break;
			
			case 'creditcard':
				var number;
				number =  el.dom.value.replace(/\D/g, '');
				var number_length=number.length;
				var parity=number_length % 2;

				var total=0;
				for (i=0; i < number_length; i++) {
					var digit=number.charAt(i);
				    if (i % 2 == parity) {
				      digit=digit * 2;
				    
				      if (digit > 9) {
				        digit=digit - 9;
				      }
				    }
				    total = total + parseInt(digit);
				}
				if (total % 10 == 0) {
					pass=true;
					el.dom.value = number;
				} else {
					msg = String.format('<div class="error-msg"><label for="{1}"><strong>{0}</strong> is not a valid credit card number.</label></div>', field, id);
				}		
				
				
			break;
			
			case 'vat':
				var regex = /((DK|FI|HU|LU|MT|SI)(-)?\d{8})|((BE|BG|EE|DE|EL|LT|PT|RO)(-)?\d{9,10})|((PL|SK)(-)?\d{10})|((IT|LV)(-)?\d{11})|((LT|SE)(-)?\d{12})|(AT(-)?U\d{8})|(CY(-)?\d{8}[A-Z])|(CZ(-)?\d{8,10})|(FR(-)?[\dA-HJ-NP-Z]{2}\ \d{9})|(IE(-)?\d[A-Z\d]\d{5}[A-Z])|(NL(-)?\d{9}B\d{2})|(ES(-)?[A-Z\d]\d{7}[A-Z\d])|^(GB){0,1}([1-9][0-9]{2}\ [0-9]{4}\ [0-9]{2})|([1-9][0-9]{2}\ [0-9]{4}\ [0-9]{2}\ [0-9]{3})|((GD|HA)[0-9]{3})$/
				var number;
				number =  el.dom.value //.replace(/[-., ]/g, '');
				if (number.match(regex)) {
					if (number.match(regex)[0]==number) {
						pass=true;
						el.dom.value = number;
					}
				} 
				
				if (!pass) {
					msg = String.format('<div class="error-msg"><label for="{1}"><strong>{0}</strong> is not valid VAT number.</label></div>', field, id);
				}		
			break;
			
			default:
				msg = String.format('<div class="error-msg"><label for="{1}"><strong><u>{0} validation is UNKNOWN !.</u></strong></label></div>', field, id);
				req=true;
		}
		
		if (el.dom.value.length<min&(el.dom.value.length>0&req)) {
			pass=false;
			msg += String.format('<div class="error-msg"><label for="{2}"><strong>{0}</strong> should have at least {1} characters.</label></div>', field, min, id);
		}
		
		if (el.dom.value.length==0) {
			if (req) {
				pass=false;
				msg = String.format('<div class="error-msg"><label for="{1}"><strong>{0}</strong> is a required field.</label></div>', field, id);
			} else {
				pass=true;
				
			}
			
		}
		
		
				
		if (pass) {
			el.parent().removeClass('error');
			el = Ext.get(id+'_err');
			if (el) {
				el.setVisible(false);
			}

			return '';
			
		} else {
			el.parent().addClass('error');
			el = Ext.get(id+'_err');
			if (el) {
				el.setVisible(true);
			}
			
			return msg;
		}

	
	}
	
	
}


