function ccbs_InvalidChar(argField) {
	// code snippet from http://www.felgall.com/javatip8.htm
	//var invalidChars = '\/\'\";:?!()[]\{\}^|£$%&*+=<>@#~';
	var invalidChars = '\/\'\"[]\{\}^|£$%*+=<>@#~';
	for (i=0; i<invalidChars.length; i++) {
		if (argField.indexOf(invalidChars.charAt(i),0) > -1)
		{return true;}	// invalid chars detected
	}
	return false; // no invalid chars detected
} // end ccbs_InvalidChar

// regular expressions in reArray
// item 0 : used for name, any alpha characters	
// item 1 : used for tel no, any numeric characters	
// item 2 : used for email, specific format
// item 3 : used for street name, 1char forllowed by characters and or spaces
// item 4 : used for post code, 2 formats AANN NNAA or AAN NAA
// item 5 : used for credit card, NNNN NNNN NNNN NNNN


var reArray = new Array;	
reArray[0] = /^[a-z]+(\s*[a-z\'\-]*)*$/i;	
reArray[1] = /^\d+(\s*\d*)*$/;
reArray[2] = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
reArray[3] = /^[a-z]([a-z]|\s)+$/i;
reArray[4] = /^[a-z]{2}((\d\d\s\d\d)|(\d\s\d))[a-z]{2}$/i;
reArray[5] = /^(\d{4}\s){3}\d{4}$/;

function ccbs_CheckField(argType, argField, argErrMsg, argReqd) {	
	// argType indicates which reg exp to use in reArray
	// argField indicates which form field is being validated
	// argMsg indicates which error message field is to be shown or hidden
	// argReqd indicates that field is mandatory - y or n;		
	//
	
	switch (argReqd) {
		case "n":
			if (argField.value == "") {        		
        		document.getElementById(argErrMsg + "_I").style.visibility = 'hidden';		
        		return true;
        	}			
			if (ccbs_InvalidChar(argField.value)) {				
				document.getElementById(argErrMsg + "_I").style.visibility = 'visible';        					
				return false;				
			}
			return true;
			break

		case "y":
			if (argField.value == "") {
        		document.getElementById(argErrMsg + "_M").style.visibility = 'visible';	
        		document.getElementById(argErrMsg + "_I").style.visibility = 'hidden';		
        		return false;
        	} else {	
           	if (reArray[argType].test(argField.value)) {	
            	document.getElementById(argErrMsg + "_M").style.visibility = 'hidden';	
            	document.getElementById(argErrMsg + "_I").style.visibility = 'hidden';			
            	return true;	
           	} else {	
            	document.getElementById(argErrMsg + "_I").style.visibility = 'visible';
            	document.getElementById(argErrMsg + "_M").style.visibility = 'hidden';				
            	return false;
           	}
			}
	} // end of switch
	
} //end ccbs_CheckField

function ccbs_CheckForm(argForm) {
	var countError = 0;
	if (ccbs_CheckField(0, argForm.yourname, "err_YourName", "y")) {
	} else {
		countError ++;		
	}		
	if (ccbs_CheckField(1, argForm.phone, "err_Phone", "y")) {
	} else {
		countError ++;		
	}	
	if (ccbs_CheckField(2, argForm.email, "err_Email", "y")) {
	} else {
		countError ++;		
	}
	if (ccbs_CheckField(0, argForm.comments, "err_Comments", "n")) {
	} else {
		countError ++;		
	}	
	if (countError  == 0) {
		//alert ("no errors found - your form will be processed")
		document.getElementById("err_Submit").style.visibility = 'hidden';		
		return true;
	} else {		
		document.getElementById("err_Submit").style.visibility = 'visible';		
		return false;
	}	
} // end ccbs_CheckForm

function ccbs_ClearForm() {
	// clear any error messages
	document.getElementById("err_Submit").style.visibility = 'hidden';	
	document.getElementById("err_YourName_M").style.visibility = 'hidden';	
	document.getElementById("err_YourName_I").style.visibility = 'hidden';	
	document.getElementById("err_Email_M").style.visibility = 'hidden';	
	document.getElementById("err_Email_I").style.visibility = 'hidden';
	document.getElementById("err_Phone_M").style.visibility = 'hidden';	
	document.getElementById("err_Phone_I").style.visibility = 'hidden';	
	document.getElementById("err_Comments_I").style.visibility = 'hidden';	

} // end ccbs_ClearForm