/*
----------------------------------------------------------------------------------
common functions
----------------------------------------------------------------------------------
*/

/* getElementsByClass by Dustin Diaz */
function getElementsByClass(searchClass,node,tag) {
	var classElements = new Array();
	if ( node == null )
		node = document;
	if ( tag == null )
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}

/* remClass i addClass totalnie sciagniete z ethanaka... ciagle brakuje czasu na wlasna analize tego rozwiazania */
function remClass(el,x)
{
	if (!el.className) return;
	if (!arguments.callee.r) arguments.callee.r=new Array();
	var r;
	if (!(r=arguments.callee.r[x])) r=arguments.callee.r[x]=
		new RegExp('\\b'+x+'\\b\\s*|\\s*'+x+'\\b','g');
	var c=el.className.replace(r,'');
	if (c != el.className) el.className=c;
}

function addClass(el,x)
{
	if (!el.className) {
		el.className=x;
		return;
	}
	if (!arguments.callee.r) arguments.callee.r=new Array();
	var r;
	if (!(r=arguments.callee.r[x])) r=arguments.callee.r[x]=
		new RegExp('\\b'+x+'\\b');
	if (!r.test(el.className)) el.className+=' '+x;
}

/* insertAfter */
function insertAfter(newElement, targetElement) {
	var parent = targetElement.parentNode;
	if (parent.lastChild == targetElement) {
		parent.appendChild(newElement);
	} else {
		parent.insertBefore(newElement, targetElement.nextSibling);
	}
}

/* removeAllChildNodes */
function removeAllChildNodes(node) {
	if (node && node.hasChildNodes && node.removeChild) 
		while (node.hasChildNodes()) node.removeChild(node.firstChild);
}

function disableChildFormElements(element, boolAction) {
	/* 
	nadaje disabled (jesli boolAction==TRUE) dla podrzednych wskazanemu
	elementowi elementow formularza
	*/
	inputs = element.getElementsByTagName("input");
	for (var i=0; i<inputs.length; i++) {
		inputs[i].disabled = boolAction;
	}
	selects = element.getElementsByTagName("select");
	for (var i=0; i<selects.length; i++) {
		selects[i].disabled = boolAction;
	}
	textareas = element.getElementsByTagName("textarea");
		for (var i=0; i<textareas.length; i++) {
		textareas[i].disabled = boolAction;
	}
}
