// For Email Validation
function validateEmail(objField, strLabel, flagCheckNull){
	if(flagCheckNull && objField.value == ""){
		alert("Please enter " + strLabel);
		objField.focus();
		return false;
	}
	reg = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@(([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
	if(!reg.test(objField.value)){
		alert("Invalid " + strLabel + ". Please enter again.");
		objField.focus();
		objField.select();
		return false;
	}
	return true;
}


// For checking whether field is empty or not
function notEmpty(objField, strLabel, blSelField, blAlertNotReq) {

	var flagReturn = false;

	for (i=0; i<objField.value.length; i++) {
		if(objField.value.charAt(i) != " ") {
			flagReturn = true;
			break;
		}
	}

	if(!flagReturn && !blAlertNotReq) {
		objField.value = "";
		if(blSelField) {
			alert("Please select " + strLabel);
		}
		else {
			alert("Please enter " + strLabel);
		}
		objField.focus();
	}
	return flagReturn;
}

/* Javascript function for validating URL's or Links. If validation for "ftp://" URL is required then change the "regexp" variable to include "ftp" parameter as specified here : "/(ftp|http|https)............". */
function validUrl(objField, strLabel) {
	var regexp = /(http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/

	if(!regexp.test(objField.value)) {
		alert("Please enter " + strLabel);
		objField.value = "http://";
		objField.focus();
		return false;
	}
	return true;
}


/* Javascript function for checking whether the entered Field Value is valid or not.*/
function isValid(objField, strLabel, minLength) {
	var strRegExp;

	// 'switch' case based on 'strLabel' argument.
	switch(strLabel) {
		case "First Name" :
		case "Last Name" :
			if(objField.value.search("[A-Za-z]") == -1) {
				alert("Invalid " + strLabel + ". Please enter again.");
				objField.focus();
				objField.select();
				return false;
			}

			((minLength != null) ? strRegExp = "^([a-zA-Zà-üÀ-Ü\'-. ]){" + minLength + ",}$" : strRegExp = "^([a-zA-Zà-üÀ-Ü\'-. ])$");

			break;

		case "Company Name" :
			((minLength == null) ? minLength = objField.value.length : "");

			if((objField.value.search("[A-Za-z]") == -1) || (objField.value.length < minLength)) {
				alert("Invalid " + strLabel + ". Please enter again.");
				objField.focus();
				objField.select();
				return false;
			}
			return true;
			break;

		case "City" :
		case "Country" :
			if(objField.value.search("[A-Za-z]") == -1) {
				alert("Invalid " + strLabel + ". Please enter again.");
				objField.focus();
				objField.select();
				return false;
			}

			((minLength != null) ? strRegExp = "^([a-zA-Zà-üÀ-Ü\(\),-.\'`/& ]){" + minLength + ",}$" : strRegExp = "^([a-zA-Zà-üÀ-Ü\(\),-.\'`/& ])$");

			break;

		case "Postcode/Zip Code" :
			strRegExp = "^(([a-zA-Z0-9])*([- ])*([a-zA-Z0-9])){3,12}$";
			break;

		case "Phone Number" :
			strRegExp = "^([a-zA-Z,#/ \\.\\(\\)\\-\\+\\*]*[0-9]){7}[0-9a-zA-Z,#/ \\.\\(\\)\\-\\+\\*]*$";
			break;

		default:
			if(objField.value.length < minLength) {
				alert("Invalid " + strLabel + ". Please enter again.");
				objField.focus();
				objField.select();
				return false;
			}
			return true;
			break;
	}

	// Generate Regular Expression from string
	thisRegExp = new RegExp(strRegExp);

	if(!thisRegExp.test(objField.value)) {
		alert("Invalid " + strLabel + ". Please enter again.");
		objField.focus();
		objField.select();
		return false;
	}
	return true;
}