function trim(s)
{
  return s.replace(/^\s+|\s+$/, '');
}

function validateRFQNumber(fld) {
    var error = "";
    var legalChars = /(^\d{1,8}$)|(^$)/; // allow numbers
 
    if (!(legalChars.test(fld.value))) {
        fld.style.background = 'Yellow'; 
        error = "Wrong data.\n";
    } else {
        fld.style.background = 'White';
    }
    return error;
}

function validateCompany(fld) {
    var error = "";
    var legalChars = /^[a-zA-Z0-9 -.!*+]+$/; // allow letters, numbers, and some symbols
 
    if (fld.value == "") {
        fld.style.background = 'Yellow'; 
        error = "Enter a company.\n";
    } else if (!(legalChars.test(fld.value))) {
        fld.style.background = 'Yellow'; 
        error = "Illegal characters.\n";
    } else {
        fld.style.background = 'White';
    }
    return error;
}

function validateUsername(fld) {
    var error = "";
    var legalChars = /^[a-zA-Z]+[a-zA-Z ]+$/; // allow letters, numbers, and whitespace
 
    if (fld.value == "") {
        fld.style.background = 'Yellow'; 
        error = "Enter a name.\n";
    } else if ((fld.value.length < 3) || (fld.value.length > 25)) {
        fld.style.background = 'Yellow'; 
        error = "Wrong length.\n";
    } else if (!(legalChars.test(fld.value))) {
        fld.style.background = 'Yellow'; 
        error = "Illegal characters.\n";
    } else {
        fld.style.background = 'White';
    }
    return error;
}

function validateEmail(fld) {
    var error="";
    var tfld = trim(fld.value);                        // value of field with whitespace trimmed off
    var emailFilter = /^[^@]+@[^@.]+\.[^@]*\w\w$/ ;
    var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ;
   
    if (fld.value == "") {
        fld.style.background = 'Yellow';
        error = "Enter an emails.\n";
    } else if (!emailFilter.test(tfld)) {              //test email for illegal characters
        fld.style.background = 'Yellow';
        error = "Invalid email.\n";
    } else if (fld.value.match(illegalChars)) {
        fld.style.background = 'Yellow';
        error = "Illegal characters.\n";
    } else {
        fld.style.background = 'White';
    }
    return error;
}

function validatePhone(fld) {
    var error = "";
    var stripped = fld.value.replace(/[\(\)\.\-\ ]/g, '');    

   if (fld.value == "") {
        error = "Enter a phone.\n";
        fld.style.background = 'Yellow';
    } else if (isNaN(parseInt(stripped))) {
        error = "Illegal characters.\n";
        fld.style.background = 'Yellow';
    } else if (stripped.length < 5) {
        error = "Wrong length.\n";
        fld.style.background = 'Yellow';
    }
    return error;
}

function checkForm(form, items){

	var first = null;
	for (var i in items){

		it = form[i];
		it.value = trim(it.value);

		it_valrez = "";
		if (it.name == 'name') {
			it_valrez = validateUsername(it);
//			alert(it_valrez);
		}
		if (it.name == 'company') {
			it_valrez = validateCompany(it);
//			alert(it_valrez);
		}
		if (it.name == 'email') {
			it_valrez = validateEmail(it);
//			alert(it_valrez);
		}
		if (it.name == 'phone') {
			it_valrez = validatePhone(it);
//			alert(it_valrez);
		}
		if (it.name == 'rfq_number') {
			it_valrez = validateRFQNumber(it);
//			alert(it_valrez);
		}


		ok = (it_valrez == "") && !it.bad;
//		ok = (it.value.length>0) && !it.bad;
		it.style.color=ok ? '' : '#0000FF';
		if (!ok){

			if (!first) first = it
			it.value = it_valrez;//'required field!';
			it.bad = true;
			it.onfocus = function(){

				this.style.color = '';
				this.value = '';
				this.onfocus = null;
				this.bad = false;

			}

		}

	}
	if (first){

		alert('Please, check highlighted fields');
		return false;

	}else{

		return true;

	}

}
function checkFormNew(form, items){

	var first = null;
	var form = document.getElementById(form);
	for (i=0; i<4; i++ ){

		//it = form[i];
		it = document.getElementById(items[i]);
		it.value = trim(it.value);

		it_valrez = "";
		if (it.name == 'name') {
			it_valrez = validateUsername(it);
//			alert(it_valrez);
		}
		if (it.name == 'company') {
			it_valrez = validateCompany(it);
//			alert(it_valrez);
		}
		if (it.name == 'email') {
			it_valrez = validateEmail(it);
//			alert(it_valrez);
		}
		if (it.name == 'phone') {
			it_valrez = validatePhone(it);
//			alert(it_valrez);
		}
		
		if (it.name == 'rfq_number') {
			it_valrez = validateRFQNumber(it);
//			alert(it_valrez);
		}
		


		ok = (it_valrez == "") && !it.bad;
//		ok = (it.value.length>0) && !it.bad;
		it.style.color=ok ? '' : '#0000FF';
		if (!ok){

			if (!first) first = true
			it.value = it_valrez;//'required field!';
			it.bad = true;
			it.onfocus = function(){

				this.style.color = '';
				this.value = '';
				this.onfocus = null;
				this.bad = false;

			}

		}

	}
	if (first){

		alert('Please, check highlighted fields');
		return false;

	}else{

		form.submit();
		return true;

	}

}