




window.CS_fname="Please enter your first name";
window.CS_lname="Please enter your last name";
window.CS_title="Please enter title";

window.CS_bname="Please enter your company name";
window.CS_postcode="Please enter your postcode";

window.CS_phone="Please enter your landline number";

window.CS_email="Please enter a valid email address";

window.CS_name="Please enter your name";

window.CS_bsname="Please enter your business name";
window.CS_AlternativeContact="Please enter the numerical values only";


// Validating the fnrm fields 

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 "ddlTitle":
					errString=window.CS_title;
					valtype_cs_gen_selectvalue(curObj);					
					break;

					case "fName":
					errString=window.CS_fname;
					valtype_cs_gen_empty(curObj);				
					break;
					
					case "lName":
					errString=window.CS_lname;
					valtype_cs_gen_empty(curObj);				
					break;

					case "cName":
					errString=window.CS_bname;
					valtype_cs_gen_empty(curObj);			
					break;
					
					case "Contact": 
					errString=window.CS_phone;
					valtype_cs_gen_landline(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 "Postcode":
					errString=window.CS_postcode;
					valtype_cs_gen_postcode(curObj);				
					break;
					
					case "Name":
					errString=window.CS_name;
					valtype_cs_gen_empty(curObj);				
					break;

					case "bName":
					errString=window.CS_bsname;
					valtype_cs_gen_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;
	}
	


	
	

	
	

	// _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_postcode(curObj)	{
		var rexp=/(^gir\s0aa$)|(^[a-pr-uwyz]((\d{1,2})|([a-hk-y]\d{1,2})|(\d[a-hjks-uw])|([a-hk-y]\d[abehmnprv-y]))\s?\d[abd-hjlnp-uw-z]{2}$)/i; // optional space in postcode validation
		(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_gen_landline(curObj)	{
		var phoneNumber=getInputVal(curObj);
		var trimNumber=phoneNumber.replace(/[\s\)]/g,"");
		var rexp=/^\(?0[123]\d{9}$/;
		(rexp.test(trimNumber))?clearError(curObj):writeError(curObj);
	}

	//specific 
	function valtype_cs_gen_email(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);
	}
	
}



