/**
 * Created by Romuald Bulyshko <romuald@bulyshko.me>, also know as codeRomuald.
 * ---
 * You can do whatever you want with this *shit*, but it would be great
 * if you gave a link back to http://www.bulyshko.me
 */

function getById(_id) {
	return(document.getElementById(_id));
}

function getByClassName(_className) {
	var elements = [],
		temporary = document.getElementsByTagName('*');
	for (var n = 0, count = temporary.length; n < count; n++) {
		if (hasClassName(temporary[n], _className)) {
			elements.push(temporary[n]);
		}
	}
	delete(temporary);
	return(elements);
}

function findInArray(_array, _key) {
	for (var n = 0, count = _array.length; n < count; n++) {
		if (_array[n] == _key) {
			return(n);
		}
	}
	return(-1);
}

function insertIntoArray(_array, _key) {
	if (findInArray(_array, _key) == -1) {
		_array[_array.length] = _key;
	}
	return(_array);
}

function removeFromArray(_array, _key) {
	var keyId = findInArray(_array, _key);
	if (keyId != -1) {
		_array.splice(keyId, 1);
	}
	return(_array);
}

function hasClassName(_element, _className) {
	return((_element && _element.className
		&& (findInArray(_element.className.split(' '), _className) != -1)) === true);
}

function addClassName(_element, _className) {
	if (_element && !hasClassName(_element, _className)) {
		_element.className = insertIntoArray(
			_element.className.split(' '),
			_className
		).join(' ');
	}
}

function removeClassName(_element, _className) {
	if (_element && _element.className && hasClassName(_element, _className)) {
		_element.className = removeFromArray(
			_element.className.split(' '),
			_className
		).join(' ');
	}
}
