/* Add a class to a string */
String.prototype.addClass = function(theClass) {
	if (this != "") {
		if (!this.classExists(theClass)) {
			return this+" "+theClass;
		}
	} else {
		return theClass;
	}
	return this;
};

/* Check if a class exists in a string */
String.prototype.classExists = function(theClass) {
	var regString = "(^| )"+theClass+"\W*";
	var regExpression = new RegExp(regString);
	if (regExpression.test(this)) {
		return true;
	}
	return false;
};

/* Remove a class from a string */
String.prototype.removeClass = function(theClass) {
	var regString = "(^| )"+theClass+"\W*";
	var regExpression = new RegExp(regString);
	return this.replace(regExpression, "");
};

String.prototype.validEmail = function() {
	if (this.match(/^[\w\.\-]+@([\w\-]+\.)+[a-zA-Z]+$/))
	return true;
	return false;
};


////

String.prototype.validPostcode = function() {
	if (this.match(/^[0-9]+$/)) //could also use if(this.match(/^\d{4}$/)) to check if 4-digit integer // difficult for overseas as some postcodes (like UK) contain letters too
	return true;
	return false;
};

String.prototype.validDecimal = function() {
	if ((this.match(/^[0-9]+.+[0-9]+$/)) || (this.match(/^[0-9]+$/))) //if decimal or whole number e.g 5.0 or 5
	return true;
	return false;
};




/*
	Written by Jonathan Snook, http://www.snook.ca/jonathan
	Add-ons by Robert Nyman, http://www.robertnyman.com
	From: http://www.robertnyman.com/2005/11/07/the-ultimate-getelementsbyclassname/
*/
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)
}
/*
To get all a elements in the document with a "info-links" class.
    getElementsByClassName(document, "a", "info-links");
To get all div elements within the element named "container", with a "col" class.
    getElementsByClassName(document.getElementById("container"), "div", "col"); 
To get all elements within in the document with a "click-me" class.
    getElementsByClassName(document, "*", "click-me"); 
*/



// find the number within mins2mine, etc
function findEmbeddedValue(start_value, end_value, full_string) {
	
	// length of start value
	start_value_length = start_value.length;
	
	// start value position
	start_value_position = full_string.indexOf(start_value);
	
	end_value_position = full_string.indexOf(end_value);
	
	// start at the char after the start_value
	embedded_value_position = start_value_position+start_value_length;
	
	embedded_value_length = end_value_position - embedded_value_position;
	
	embedded_value = full_string.substr(embedded_value_position, embedded_value_length);
	// end at the char before the end_value
	
	return embedded_value;
}
