// JavaScript Document
function Validator(input, regex, text, text2) { //types: email, alphanumeric, user
	this.input = input;
	this.regex = regex;
	this.text = text;
	this.text2 = text2;
}

Validator.validateRadioGroup = function(radios, text) {
	Validator.clearWarnings();
	for (var i = 0; i < radios.length; i++) {
		if(radios[i].checked) {
			return true;
		}
	}
	$(radios[radios.length-1]).after('<p class="warningText">'+text+'</p>');
	return false;
}


Validator.validate = function(form, validatorObjects) {
	Validator.clearWarnings();
	var errors = new Array();
	for (var i = 0; i < validatorObjects.length; i++) {
		result = Validator.testInput(validatorObjects[i].input, validatorObjects[i].regex, validatorObjects[i].text, validatorObjects[i].text2);
		if (result == false) {
			return false;
		}
	}
	return true;
}

Validator.testInput = function(input, regex, text, text2) {
	if (input.value=="") {
		Validator.addWarning(input, text2, "#FF0000");
		return false;
	}
	if (  regex.test(input.value) && input.value != "") {
		return true;
	} else {
		Validator.addWarning(input, text, "#FF0000");
		return false;
	}
}

Validator.clearWarnings = function() {
	$('.warningText').remove();
	$('.warning').removeClass('warning');
}

Validator.addWarning = function(input, text, highlight) {
	$(input).addClass("warning");
	$(input).after('<p class="warningText">'+text+'</p>');
}

Validator.url = /^[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}$/;
Validator.emailex = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
Validator.userex = /^[a-zA-Z0-9_]{3,16}$/;
Validator.urlex = /^((([hH][tT][tT][pP][sS]?|[fF][tT][pP])\:\/\/)?([\w\.\-]+(\:[\w\.\&%\$\-]+)*@)?((([^\s\(\)\<\>\\\"\.\[\]\,@;:]+)(\.[^\s\(\)\<\>\\\"\.\[\]\,@;:]+)*(\.[a-zA-Z]{2,4}))|((([01]?\d{1,2}|2[0-4]\d|25[0-5])\.){3}([01]?\d{1,2}|2[0-4]\d|25[0-5])))(\b\:(6553[0-5]|655[0-2]\d|65[0-4]\d{2}|6[0-4]\d{3}|[1-5]\d{4}|[1-9]\d{0,3}|0)\b)?((\/[^\/][\w\.\,\?\'\\\/\+&%\$#\=~_\-@]*)*[^\.\,\?\"\'\(\)\[\]!;<>{}\s\x7F-\xFF])?)$/;
Validator.alphanumericex = /^[a-zA-Z0-9]+$/;
Validator.alphaspecial = /^[a-zA-Z0-9 ]+(([\'\,\.\-\&\!\?\-\_\][a-zA-Z0-9 ])?[a-zA-Z0-9 ]*)*$/;
Validator.numbers = /^[0-9- ()]+$/;
Validator.name = /^[a-zA-Z]+(([\'\,\.\- ][a-zA-Z ])?[a-zA-Z]*)*$/;
Validator.UKphone = /(\s*\(?0\d{4}\)?\s*\d{6}\s*)|(\s*\(?0\d{3}\)?\s*\d{3}\s*\d{4}\s*)/;
Validator.genString = /^([1-zA-Z0-1@.\s]{1,255})$/;
Validator.postcode = /^([A-PR-UWYZa-pr-uwyz]([0-9]{1,2}|([A-HK-Ya-hk-y][0-9]|[A-HK-Ya-hk-y][0-9]([0-9]|[ABEHMNPRV-Yabehmnprv-y]))|[0-9][A-HJKS-UWa-hjks-uw])\ {0,1}[0-9][ABD-HJLNP-UW-Zabd-hjlnp-uw-z]{2}|([Gg][Ii][Rr]\ 0[Aa][Aa])|([Ss][Aa][Nn]\ {0,1}[Tt][Aa]1)|([Bb][Ff][Pp][Oo]\ {0,1}([Cc]\/[Oo]\ )?[0-9]{1,4})|(([Aa][Ss][Cc][Nn]|[Bb][Bb][Nn][Dd]|[BFSbfs][Ii][Qq][Qq]|[Pp][Cc][Rr][Nn]|[Ss][Tt][Hh][Ll]|[Tt][Dd][Cc][Uu]|[Tt][Kk][Cc][Aa])\ {0,1}1[Zz][Zz]))$/;