window.CS_radio="Please select an option.";
window.CS_companyname="Please enter your company name.";
window.CS_postcode="Please enter your postcode.";
window.CS_title="Please select a title.";
window.CS_firstname="Please enter your first name.";
window.CS_lastname="Please enter your last name.";
window.CS_phone="Please enter your landline number.";
window.CS_email="Please enter a valid email address.";
window.CS_question="Please select a question.";
window.CS_answer="Please enter an answer for your question.";
window.CS_checkbox="Please check for validation.";
window.CS_AlternativeContact="Please enter the numerical values only.";

window.CS_bldg_number_name="Please enter your Building number/name.";

window.CS_road_street="Please enter your Road/street name.";
window.CS_town_city="Please enter your Town/City name.";
window.CS_county="Please enter the county name";

window.CS_main_phone_number="Please enter your main telephone number.";

window.CS_cur_busi_cust="Please select one option."

window.CS_additional_details="Please enter your additional detail.";



window.onload=validator;



function validator()	{
	init();
	function init()	{
		el=document.getElementsByTagName("form")
	       
		for (var a=0;a<el.length;a++)	{
			if ((el[a].className).indexOf("CP2Form")!=-1)	{
				el[a].onsubmit = function () {	
  					return validate(this.id);
				}
			}
		}
	}
}

function getElementsByClassName(oElm, strTagName, strClassName){
	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	strClassName = strClassName.replace(/\-/g, "\\-");
	var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
	var oElement;
	for(var i=0; i<arrElements.length; i++){
		oElement = arrElements[i];		
		if(oRegExp.test(oElement.className)){
			arrReturnElements.push(oElement);
		}	
	}
	return (arrReturnElements)
}

function validate(id)	{
	var errorFlag=false;
	var formel=document.getElementById(id);
	
	valScan(formel.getElementsByTagName("div"));
	valScan(formel.getElementsByTagName("tr"));
	return errorFlag?false:true;
	
	function valScan(el)	{
		for (var a=0;a<el.length;a++)	{
			// validation rules
			
			// _cs validation rules
			if ((el[a].className).indexOf("validate_cs(")!=-1)	{
				var curObj=el[a];
				valData_cs(curObj);
				switch (method) {

				    case "radio":
					errString=window.CS_radio;
					valtype_cs_gen_radio(curObj);
					break;
					case "companyname":
					errString=window.CS_companyname;
					valtype_cs_gen_empty(curObj);
					break;
					case "postcode":
					errString=window.CS_postcode;
					valtype_cs_gen_empty(curObj);
					break;
					case "title":
					errString=window.CS_title;
					valtype_cs_gen_selectvalue(curObj);
					break;
					case "firstname":
					errString=window.CS_firstname;
					valtype_cs_gen_empty(curObj);
					break;
					case "lastname":
					errString=window.CS_lastname;
					valtype_cs_gen_empty(curObj);
					break;
					case "phone": 
					errString=window.CS_phone;
					valtype_cs_gen_numeric(curObj);
					break;
					case "Alternative": 
					errString=window.CS_AlternativeContact;
					valtype_cs_gen_numeric_new(curObj);				
					break;
					case "email":
					errString=window.CS_email;
					valtype_cs_gen_email(curObj);
					break;
					case "question":
					errString=window.CS_question;
					valtype_cs_gen_selectvalue(curObj);
					break;
					case "answer":
					errString=window.CS_answer;
					valtype_cs_gen_empty(curObj);
					break;
					case "checkbox":
					errString=window.CS_checkbox;
					valtype_cs_gen_checkbox(curObj);
					break;
					case "bldg_number_name":
					errString=window.CS_bldg_number_name;
					valtype_cs_gen_empty(curObj);
					break;
					case "road_street":
					errString=window.CS_road_street;
					valtype_cs_gen_empty(curObj);
					break;
					case "town_city":
					errString=window.CS_town_city;
					valtype_cs_gen_empty(curObj);
					break;
					case "county":
					errString=window.CS_lastname;
					valtype_cs_gen_empty(curObj);
					break;
					case "main_phone_number": 
					errString=window.CS_main_phone_number;
					valtype_cs_gen_numeric(curObj);
					break;
					case "cur_busi_cust":
					errString=window.CS_cur_busi_cust;
					valtype_cs_gen_radio(curObj);			
					break;
					case "additional_details":
					errString=window.CS_additional_details;
					valtype_cs_textarea_empty(curObj);
					break;
			
				}
			}
		}
	}
	function valData(obj)	{
		var sp=(obj.className).indexOf("validate(");
		var sstr=(obj.className).substring(sp+9,obj.className.length);
		sstr=sstr.substring(0,sstr.indexOf(")"));
		var fd=sstr.indexOf("$");
		method=sstr.substring(0,fd);
		errString=sstr.substring(fd+1,sstr.length-1);
	}
	
	function valData_cs(obj)	{
		var sp=(obj.className).indexOf("validate_cs(");
		var sstr=(obj.className).substring(sp+12,obj.className.length);
		sstr=sstr.substring(0,sstr.indexOf(")"));
		method=sstr;
	}
	
	function writeError(curObj)	{
		errorFlag=true;
		if ((curObj.className).indexOf("error")==-1)	{
			curObj.className=curObj.className+" error";
			var errorMsg=new Array();
			var errorMsg=getElementsByClassName(curObj,"div","errorMessageText");
			if (errorMsg.length>0)	{
				errorMsg[0].innerHTML="<div class=\"error\"><strong>"+errString+"</strong></div>";
			}	
			
		}
	}
	
	function clearError(curObj)	{
		curObj.className=curObj.className.replace(" error","");
		var errorMsg=getElementsByClassName(curObj,"div","errorMessageText");
		errorMsg[0].innerHTML="<p></p>";
		
	}
	
	//for all input tags in the form
	function getInputVal(curObj)	{
		return curObj.getElementsByTagName("input")[0].value;
	}
	
	//for all input tags in the form
	function getInputtextareaVal(curObj)	{
		return curObj.getElementsByTagName("textarea")[0].value;
	}

//for all check box es in the form
	function getCheckboxVal(curObj)	{
		//return curObj.getElementsByTagName("input")[0].checked;
        var els=curObj.getElementsByTagName("input");
		for (a=0;a<els.length;a++)	{
			if(els[a].checked)	{
			return true;
		//	return false;
			}
		}
		return false;
		//return true;
	}
	
	//for all radio buttons in the form
	function getRadioSelected(curObj)	{
		var els=curObj.getElementsByTagName("input");
		for (a=0;a<els.length;a++)	{
			if(els[a].checked)	{
				return true;
			}
		}
		return false;
	}
	
//for all select box values
	function getSelectVals(curObj)	{
		var els=curObj.getElementsByTagName("select");var o=new Array();
		for (a=0;a<els.length;a++)	{o.push(els[a].value);}
		return o;
	}
	// validation rules

	

	// _cs validation rules
	// generic
	function valtype_cs_gen_empty(curObj)	{
		(getInputVal(curObj)=="")?writeError(curObj):clearError(curObj);
	}
	function valtype_cs_gen_numeric(curObj)	{
		var rexp=/^[0-9][0-9\ ]*$/;
		(getInputVal(curObj).search(rexp))?writeError(curObj):clearError(curObj);
	}
	function valtype_cs_gen_numeric_new(curObj)	{
	var rexp=/^[0-9\ ]*$/;
	(getInputVal(curObj).search(rexp))?writeError(curObj):clearError(curObj);

	}
	function valtype_cs_gen_selectvalue(curObj)	{
		var vals=getSelectVals(curObj);
		var orTrig=false;
		for (i=0;i<vals.length;i++)	{
			if (vals[i]=="")	{orTrig=true;}
		}
		(orTrig)?writeError(curObj):clearError(curObj);
	}
	function valtype_cs_textarea_empty(curObj)	{
		(getInputtextareaVal(curObj)=="")?writeError(curObj):clearError(curObj);
	}
	

	
	//specific 
	function valtype_cs_gen_email(curObj)	{
		if(getInputVal(curObj) != ""){
			var rexp=/^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$/;
			errString=window.CS_email;
			(getInputVal(curObj).search(rexp))?writeError(curObj):clearError(curObj);
		}
	}
	function valtype_cs_gen_checkbox(curObj)	{
		getCheckboxVal(curObj)?clearError(curObj):writeError(curObj);
	}
	function valtype_cs_gen_radio(curObj)	{
		getRadioSelected(curObj)?clearError(curObj):writeError(curObj);
	}
	
}

