/*  http://code.mikebrittain.com/2006/01/inarray-method-for-javascript-and-actionscript/
This method (prototype) provides simple linear search capabilities for the built-in array class of JavaScript. It will return true or false depending upon whether the value passed as an argument to the method is found within the array object. */
Array.prototype.inArray = function (value) {
	var i;
	for (i=0; i < this.length; i++) {
		if (this[i] === value) {
			return true;
		}
	}
	return false;
};


/*
	Copyright Robert Nyman, http://www.robertnyman.com
	Free to use if this text is included
*/
// ---
function $(strId){
	return document.getElementById(strId);
}
// ---
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 addClassName(oElm, strClassName){
	var strCurrentClass = oElm.className;
	if(!new RegExp(strClassName, "i").test(strCurrentClass)){
		oElm.className = strCurrentClass + ((strCurrentClass.length > 0)? " " : "") + strClassName;
	}
}
// ---
function removeClassName(oElm, strClassName){
	var oClassToRemove = new RegExp((strClassName + "\s?"), "i");
	oElm.className = oElm.className.replace(oClassToRemove, "").replace(/^\s?|\s?$/g, "");
}
// ---


// nutcracker.co.nz functions
function hasClassName(oElm,strClass){
	var classNames = oElm.className.split(' ');
	if (classNames.inArray(strClass)) {
		return true;
	}
    return false;
}

function swapClassName(oElm,strClass1,strClass2){
	if (hasClassName(oElm,strClass1)) {
		removeClassName(oElm,strClass1); 
		addClassName(oElm,strClass2); 
		return true; 
	} 
	if (hasClassName(oElm,strClass2)) {
		removeClassName(oElm,strClass2); 
		addClassName(oElm,strClass1); 
		return true; 
		} 
	return false;
}

function toggleTab (oElmBox,oElmTab){
	swapClassName(oElmBox,'closed','open');
	swapClassName(oElmTab,'closed','open');
}
function setTab (oElmBox,oElmTab,strState){
	removeClassName(oElmBox,'open');
	removeClassName(oElmTab,'open');
	removeClassName(oElmBox,'closed');
	removeClassName(oElmTab,'closed');
	addClassName(oElmBox,strState); 
	addClassName(oElmTab,strState); 
	return true; 
}


// http://www.dustindiaz.com/seven-togglers/
function toggle() {
	for ( var i=0; i < arguments.length; i++ ) {
		arguments[i].style.display = (arguments[i].style.display != 'none' ? 'none' : '' );
	}
}
