function $(id) { return document.getElementById(id); }

function toggle_checkboxes(id)
{
    if (!document.getElementById){ return; }
    if (!document.getElementsByTagName){ return; }
    var inputs = document.getElementById(id).getElementsByTagName("input");
    for(var x=0; x < inputs.length; x++) {
        if (inputs[x].type == 'checkbox'){
            inputs[x].checked = !inputs[x].checked;
        }
    }
}
function array_fill( start_index, num, mixed_val )
{
	var key, tmp_arr = {};
	if ( !isNaN( start_index ) && !isNaN( num ) ) {
		for( key = 0; key < num; key++ ) {
			tmp_arr[(key+start_index)] = mixed_val;
		}
	}
	return tmp_arr;
}
function ShowHideAll(elmID)
{
	var tabel = $(elmID);
	tabelLength = tabel.rows.length;
	for(i = 0; i < tabelLength-1; i++)
	{
		if($(i) != null)
		ShowHide(i, $(i).rowIndex);
	}
}

function textwrap(text, maxWidth)
{
	if(getWidth(text) < maxWidth)
	{
		return text;
	}else
	{
		newText = '';
		stoppen = false;
		for(i=1; stoppen != true; i++)
		{
			newText = text.substring(0, i);
			if(getWidth(newText) > maxWidth || newText == text || getWidth(newText) > getWidth(text))
			{
				stoppen = true;
			}
		}
		return newText+'...';
	}
}

function getWidth(text)
{
	var spanElement = document.createElement('span');
	spanElement.style.whiteSpace = 'nowrap';
	spanElement.innerHTML = text;
	document.body.appendChild(spanElement);
	var width = spanElement.offsetWidth;
	document.body.removeChild(spanElement);

	return width;
}

function textWrapByClass(classname, maxWidth)
{
	wrapElms = getElementsByClassName(classname) 
	for(n=0; n < wrapElms.length; n++)
	{
		wrapElms[n].innerHTML = textwrap(wrapElms[n].innerHTML, maxWidth);
	}
}
function getElementsByClassName(className, tag, elm)
{
	var testClass = new RegExp("(^|\\s)" + className + "(\\s|$)");
	var tag = tag || "*";
	var elm = elm || document;
	var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
	var returnElements = [];
	var current;
	var length = elements.length;
	for(var i=0; i<length; i++){
		current = elements[i];
		if(testClass.test(current.className)){
			returnElements.push(current);
		}
	}
	return returnElements;
}

