// Removes leading whitespaces
function LTrim( value )
{
	var re = /\s*((\S+\s*)*)/;
	return value.replace(re, "$1");
}

// Removes ending whitespaces
function RTrim( value )
{
	var re = /((\s*\S+)*)\s*/;
	return value.replace(re, "$1");
}

// Removes leading and ending whitespaces
function Trim( value )
{
	return LTrim(RTrim(value));
}

function Email(str)
{
	var supported = 0;
	if (window.RegExp) {
		var tStr = "a";
		var tReg = new RegExp(tStr);
		if (tReg.test(tStr)) 
			supported = 1;
	}
	if (!supported)
		return (str.indexOf(".") <= 2) || (str.indexOf("@") < 0);
	var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
	var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
	return (r1.test(str) || !r2.test(str));
}

function isURL(urlStr)
{
	if (urlStr.indexOf(" ") != -1) {
		//alert("Spaces are not allowed in a URL");
		return false;
	}
	
	/*if (urlStr == "" || urlStr == null) {
		return true;
	}*/
	
	urlStr=urlStr.toLowerCase();
	
	var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
	var validChars="\[^\\s" + specialChars + "\]";
	var atom=validChars + '+';
	var urlPat=/^http:\/\/(\w*)\.([\-\+a-z0-9]*)\.(\w*)/;
	var matchArray=urlStr.match(urlPat);
	
	if (matchArray==null) {
		//alert("The URL seems incorrect \ncheck it begins with http://\n and it has 2 .'s");
		return false;
	}
	
	var user=matchArray[2];
	var domain=matchArray[3];
	
	for (i=0; i<user.length; i++) {
		if (user.charCodeAt(i)>127) {
			//alert("This domain contains invalid characters.");
			return false;
		}
	}
	
	for (i=0; i<domain.length; i++) {
		if (domain.charCodeAt(i) > 127) {
			//alert("This domain name contains invalid characters.");
			return false;
		}
	}
	
	var atomPat=new RegExp("^" + atom + "$");
	var domArr=domain.split(".");
	var len=domArr.length;
	
	for (i=0;i<len;i++) {
		if (domArr[i].search(atomPat) == -1) {
			//alert("The domain name does not seem to be valid.");
			return false;
		}
	}
	
	return true;
} 

function validateEnquiryForm() {
	var form = document.enquiryForm;
	if(form.title.value==0){
		alert("Please choose your Title!");
		form.title.focus();
		return false;
		
	}
	/*if (Trim(form.title.value) == "") {
		alert("Please choose your Title!");
		form.title.focus();
		return false;
	} */
	if (Trim(form.name.value) == 0) {
		alert("Please enter your Name!");
		form.name.focus();
		return false;
	} else if (!isNaN(form.name.value)) {
		alert("Please enter valid Name!");
		form.name.focus();
		return false;
	}

	if (Trim(form.company.value) != '' && !isNaN(form.company.value)) {
		alert("Please enter valid company Name!");
		form.company.focus();
		return false;
	}

	if (Trim(form.address.value) != '' && !isNaN(form.address.value)) {
		alert("Please enter valid address Name!");
		form.address.focus();
		return false;
	}

	if (Trim(form.number.value) == "") {
		alert("Please enter your contact number!");
		form.number.focus();
		return false;
	}
	
	if (Trim(form.email.value) == "") {
		alert("Please enter your Email Id!");
		form.email.focus();
		return false;
	} else if (Email(form.email.value)) {
		alert("Please enter valid Email Id!");
		form.email.focus();
		return false;
	}
	if (Trim(form.subject.value) == "") {
		alert("Please enter subject!");
		form.subject.focus();
		return false;
	}
	if (Trim(form.comments.value) == "") {
		alert("Please enter your comments!");
		form.comments.focus();
		return false;
	}
	return true;
}


function validateQuoteForm() {
	var form = document.quoteForm;
	if (Trim(form.organization.value) == "0") {
		alert("Please enter your Organization!");
		form.organization.focus();
		return false;
	} else if (!isNaN(form.organization.value)) {
		alert("Please enter valid Organization!");
		form.organization.focus();
		return false;
	}
	
	if (Trim(form.contactPerson.value) == "") {
		alert("Please enter Contact Person Name!");
		form.contactPerson.focus();
		return false;
	} else if (!isNaN(form.contactPerson.value)) {
		alert("Please enter valid Name!");
		form.contactPerson.focus();
		return false;
	}

	if (Trim(form.designation.value) != '' && !isNaN(form.designation.value)) {
		alert("Please enter valid Designation!");
		form.designation.focus();
		return false;
	}
	
	if (Trim(form.officeAddress.value) != '' && !isNaN(form.officeAddress.value)) {
		alert("Please enter valid Address!");
		form.officeAddress.focus();
		return false;
	}

	if (Trim(form.phone.value) == "") {
		alert("Please enter your contact phone number!");
		form.phone.focus();
		return false;
	}
	
	if (Trim(form.email.value) == "") {
		alert("Please enter your Email Id!");
		form.email.focus();
		return false;
	} else if (Email(form.email.value)) {
		alert("Please enter valid Email Id!");
		form.email.focus();
		return false;
	}
	
	if (Trim(form.website.value) != "" && isURL(form.website.value)) {
		alert("Please enter valid Website Address!");
		form.website.focus();
		return false;
	}
	
	if (Trim(form.sector.value) == "") {
		alert("Please enter Sector!");
		form.sector.focus();
		return false;
	}
	
	if (Trim(form.noOfEmployees.value) != "" && isNaN(form.noOfEmployees.value)) {
		alert("Please enter valid number!");
		form.noOfEmployees.focus();
		return false;
	}
	
	if (Trim(form.product.value) == "") {
		alert("Please enter Product / Service!");
		form.product.focus();
		return false;
	}
	
	if (Trim(form.noOfShifts.value) != "" && isNaN(form.noOfShifts.value)) {
		alert("Please enter valid number!");
		form.noOfShifts.focus();
		return false;
	}
	
	if (Trim(form.noOfSites.value) != "" && isNaN(form.noOfSites.value)) {
		alert("Please enter valid number!");
		form.noOfSites.focus();
		return false;
	}
	
	if (form.interested.value == 0) {
		alert("Please choose Standard you are interested in!");
		form.interested.focus();
		return false;
	}
	
	if (Trim(form.completionDate.value) == "") {
		alert("Please enter Approximate date of completion!");
		form.completionDate.focus();
		return false;
	}
	
	return true;
}