
function validateForm(form) {                                                              
	//if (validateRequired(form) && validateEmail(form) && isPhoneNumber(form.phone.value))
	if (validateRequired(form) && validateEmail(form))
	{
		form.submit();
		return true;
	}
	else
	{
		return false;
	};	
} 

function required () { 
	this.aa = new Array("name", "Dien ho va ten.", new Function ("varName", " return this[varName];"));
	this.ab = new Array("email", "Dien dia chi E-mail.", new Function ("varName", " return this[varName];"));
	this.ac = new Array("title", "Dien tieu de muon gui.", new Function ("varName", " return this[varName];"));
	this.ad = new Array("content", "Dien noi dung can gui.", new Function ("varName", " return this[varName];"));
} 

function email () { 
	this.aa = new Array("email", "Dia chi E-mail khong hop le.", new Function ("varName", " return this[varName];"));
} 

function validateRequired(form) {
	var isValid = true;
	var focusField = null;
	var i = 0;
	var fields = new Array();
	oRequired = new required();
	for (x in oRequired) {
		var field = form[oRequired[x][0]];
		if (field == null) continue;
		
		if (field.type == 'text' ||
			field.type == 'textarea' ||
			field.type == 'file' ||
			field.type == 'select-one' ||
			field.type == 'radio' ||
			field.type == 'password') {
			
			var value = '';
			// get field's value
			if (field.type == "select-one") {
				var si = field.selectedIndex;
				if (si >= 0) {
					value = field.options[si].value;
				}
			} else {
				value = field.value;
			}
			
			if (trim(value).length == 0) {
			
				if (i == 0) {
					focusField = field;
				}
				fields[i++] = oRequired[x][1];
				isValid = false;
			}
		}
	}
	if (fields.length > 0) {
	   focusField.focus();
	   alert(fields.join('\n'));
	}
	return isValid;
}
// Trim whitespace from left and right sides of s.
function trim(s) {
	return s.replace( /^\s*/, "" ).replace( /\s*$/, "" );
}			
function validateEmail(form) {
	var bValid = true;
	var focusField = null;
	var i = 0;
	var fields = new Array();
	oEmail = new email();
	for (x in oEmail) {
		if ((form[oEmail[x][0]].type == 'text' ||
			 form[oEmail[x][0]].type == 'textarea') &&
			(form[oEmail[x][0]].value.length > 0)) {
			if (!checkEmail(form[oEmail[x][0]].value)) {
				if (i == 0) {
					focusField = form[oEmail[x][0]];
				}
				fields[i++] = oEmail[x][1];
				bValid = false;
			}
		}
	}
	if (fields.length > 0) {
		focusField.focus();
		alert(fields.join('\n'));
	}
	return bValid;
}

/**
 * Reference: Sandeep V. Tamhankar (stamhankar@hotmail.com),
 * http://javascript.internet.com
 */
function checkEmail(emailStr) {
   if (emailStr.length == 0) {
	   return true;
   }
   var emailPat=/^(.+)@(.+)$/;
   var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
   var validChars="\[^\\s" + specialChars + "\]";
   var quotedUser="(\"[^\"]*\")";
   var ipDomainPat=/^(\d{1,3})[.](\d{1,3})[.](\d{1,3})[.](\d{1,3})$/;
   var atom=validChars + '+';
   var word="(" + atom + "|" + quotedUser + ")";
   var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
   var domainPat=new RegExp("^" + atom + "(\\." + atom + ")*$");
   var matchArray=emailStr.match(emailPat);
   if (matchArray == null) {
	   return false;
   }
   var user=matchArray[1];
   var domain=matchArray[2];
   if (user.match(userPat) == null) {
	   return false;
   }
   var IPArray = domain.match(ipDomainPat);
   if (IPArray != null) {
	   for (var i = 1; i <= 4; i++) {
		  if (IPArray[i] > 255) {
			 return false;
		  }
	   }
	   return true;
   }
   var domainArray=domain.match(domainPat);
   if (domainArray == null) {
	   return false;
   }
   var atomPat=new RegExp(atom,"g");
   var domArr=domain.match(atomPat);
   var len=domArr.length;
   if ((domArr[domArr.length-1].length < 2) ||
	   (domArr[domArr.length-1].length > 3)) {
	   return false;
   }
   if (len < 2) {
	   return false;
   }
   return true;
}

function isInteger(s)
{   var i;
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function isPhoneNumber(s) 
{

     // Check for correct phone number
     rePhoneNumber = new RegExp(/^\([1-9]\d{1}\)\s?\d{3}\-\d{4}$/);

     if (!rePhoneNumber.test(s)) {
          alert("Phone Number Must Be Entered As: (01) 123-4567");
          return false;
     }

return true;
}
function checkFileExt(filename)
{
	if (filename.length == 0) {
	   return true;
   }
   var FileAllow = new Array(".doc", ".rtf", ".pdf", "xls");
   allowSubmit = false;
   ext = filename.slice(filename.indexOf(".")).toLowerCase();
   for (x in FileAllow)
   {
	   if (ext==x)
	   {
		   allowSubmit = true;
		   break;
	   }
   }
   if (allowSubmit)
   {
	   return true;
   }
   else
   {
	   alert("Xin vui long Upload file theo cac dinh dang *.doc, *.rtf, *.pdf, *.xls");
	   return false;
   }
}
