	var fields = Array();
	var submitShow = false;
	
	function CheckField(element) {
		if (document.getElementById(element) != false) {
			this.domElement =  document.getElementById(element);
		} else if (element.parentNode != undefined) {
			this.domElement = element;
		} else {
			window.alert("This is not a valid DOM element!");
			return false;
		}
		fields.push(this);
		return this;
	}
	
	CheckField.prototype.watchField = function() {
		if (!this.domElement.attachEvent) {
			this.domElement.addEventListener('keyup', this.checkText, false);
			this.domElement.addEventListener('blur', this.checkText, false);
		} else {
			this.domElement.attachEvent('onkeyup', this.checkText);
			this.domElement.attachEvent('onblur', this.checkText, false);
		}
	}
	
	CheckField.prototype.checkText = function(event) {
		if (event.target) {
			element = event.target;
		} else if (event.srcElement) {
			element = event.srcElement;
		}
		// Find the correct field object
		showSubmit = true;
		var i = fields.length;
		while (i--) {
			currentField = fields[i];
			if (currentField.domElement === element) {
				field = currentField;
			}
			showSubmit = showSubmit && currentField.check(fields[i]);
		}
		if (field.domElement.value != field.value) {
			if (showSubmit != submitShow) {
				if (bCommForm != undefined) {
					(showSubmit) ? bCommForm.resize(bCommForm.display.originalWidth, bCommForm.display.originalHeight, 0.5) : bCommForm.resize(bCommForm.display.originalWidth, document.getElementById('sendBtn').offsetTop - 17, 0.2);
				}
				submitShow = showSubmit;
			}
			valid = field.check(field);
			if (field.progressiveCheck) {
				field.domElement.style.backgroundImage = (field.domElement.value.length <= field.minLength) ? 'url(' + field.idleImg + ')' : (valid) ? 'url(' + field.okImg + ')' : 'url(' + field.invalidImg + ')';
			}
			field.value = field.domElement.value;
		}
	}
	
	CheckField.prototype.check = function(field) {
		valid = false;
		fieldText = field.domElement.value;
		if (fieldText.length > field.minLength) {
			if (field.regExpression !== undefined) {
				// Check the regex...
				valid = field.regExpression.test(fieldText);
			} else {
				valid = true;
			}
		}
		if (field.minLength == 0 && fieldText.length == 0) {
			valid = true;
		}
		field.valid = valid;
		return valid;
	}
	
	var sendComment = function(result) {
		function http() {
			if (window.ActiveXObject) {
				return new ActiveXObject("Microsoft.XMLHTTP");
			} else if (window.XMLHttpRequest) {
				return new XMLHttpRequest();
			} else {
				return false;
			}
		}
		
		parcel = http();
		
		if (parcel !== false) {
			// Build the send-string.
			formURI = new String();
			var i = fields.length;
			while (i--) {
				currentField = fields[i];
				formURI += (formURI.length === 0)? currentField.domElement.name + "=" + escape(currentField.domElement.value) : "&" + currentField.domElement.name + "=" + escape(currentField.domElement.value);
			}
			parcel.onreadystatechange = result;
			parcel.open("GET", 'addComment/?' + formURI, true);
			parcel.send(null);
		}
	}

	CheckField.prototype.minLength = 3;
	CheckField.prototype.domElement;
	CheckField.prototype.regExpression;
	CheckField.prototype.progressiveCheck = true;
	CheckField.prototype.okImg = "../images/blogCommentText280BackCorrect.png";
	CheckField.prototype.invalidImg = "../images/blogCommentText280BackIncorrect.png";
	CheckField.prototype.idleImg = "../images/blogCommentText280BackIdleAgain.png";
	CheckField.prototype.valid = false;
	CheckField.prototype.text = "";