
//Recursieve functie -> Wordt geinitialiseerd door checkIfPermToggle()
function toggleRechtenDown(obj, theform)
{
	var d = document.forms[theform].elements;
	var laatste = obj;
	for(var i = 0; i < d.length; i++)
	{
		if(d[i].getAttribute('parent') == obj.getAttribute('id'))
		{
			d[i].checked = false;
			laatste = d[i];
		}
	}
	if(obj != laatste)
		toggleRechtenDown(laatste, theform);
}

function checkIfPermToggle(obj, theform)
{
	if(obj.getAttribute('parent') != '0') //Dit is een hoofdgroep.
	{
		var bReturnValue = false;
		if(document.getElementById(obj.getAttribute('parent')).checked == true)
			bReturnValue = true;
		
		return bReturnValue;
	}
	else
	{
		if(obj.checked == false)
			toggleRechtenDown(obj, theform);
		
		return true;
	}
}

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;
}

function toggleSelectionPart(obj, name)
{
	var d = getElementsByClassName(name);
	for(var i = 0; i < d.length; i++)
	{
		if(obj.checked == true)
			d[i].checked = true;
		else d[i].checked = false;
	}
}

function toggleSelection(obj, theform, type)
{
	var d = document.forms[theform].elements;
	for(var i = 0; i < d.length; i++)
	{
		if(d[i].type == type)
		{
			if(obj.checked == true)
				d[i].checked = true;
			else d[i].checked = false;
		}
	}
}

function hiLiteAgenda()
{
	for(var i = 0; i < arguments.length; i++)
	{
		var d = document.getElementsByTagName("td");
		for(var j = 0; j < d.length; j++)
		{
			if(d[j].getAttribute('pointMarker') == arguments[i])
				d[j].style.backgroundColor = '#E8E8E8';
		}
	}
}

function loLiteAgenda()
{
	for(var i = 0; i < arguments.length; i++)
	{
		var d = document.getElementsByTagName("td");
		for(var j = 0; j < d.length; j++)
		{
			if(d[j].getAttribute('pointMarker') == arguments[i])
				d[j].style.backgroundColor = '';
		}
	}
}

function hiLitePoint()
{
	for(var i = 0; i < arguments.length; i++)
	{
		var d = document.getElementsByTagName("div");
		for(var j = 0; j < d.length; j++)
		{
			if(d[j].getAttribute('timeMarker') == arguments[i])
				d[j].style.backgroundColor = '#E8E8E8';
		}
	}
}

function loLitePoint()
{
	for(var i = 0; i < arguments.length; i++)
	{
		var d = document.getElementsByTagName("div");
		for(var j = 0; j < d.length; j++)
		{
			if(d[j].getAttribute('timeMarker') == arguments[i])
				d[j].style.backgroundColor = '';
		}
	}
}

function hiLiteDayPoint()
{
	for(var i = 0; i < arguments.length; i++)
	{
		var d = document.getElementsByTagName("div");
		for(var j = 0; j < d.length; j++)
		{
			if(d[j].getAttribute('dayMarker') == arguments[i])
				d[j].style.backgroundColor = '#E8E8E8';
		}
	}
}

function loLiteDayPoint()
{
	for(var i = 0; i < arguments.length; i++)
	{
		var d = document.getElementsByTagName("div");
		for(var j = 0; j < d.length; j++)
		{
			if(d[j].getAttribute('dayMarker') == arguments[i])
				d[j].style.backgroundColor = '';
		}
	}
}

function pointTimeLine(idTimeLine)
{
	document.getElementById(idTimeLine).style.backgroundColor = '#33CC66';
	window.location.href = "#" + idTimeLine;
	window.setTimeout(function() {document.getElementById(idTimeLine).style.backgroundColor = '';}, 2000);
}

function findPosX(obj)
{
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}

function findPosY(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}

objA = null;
function menuOver(obj, objID, objTxtID, e, caption)
{
	objA = obj.childNodes[0];
	objA.style.visibility = 'hidden';
	
	objMenu = document.getElementById(objID);
	objMenu.style.left = findPosX(obj) + 27;
	objMenu.style.top = findPosY(obj);
	
	objMenuTxt = document.getElementById(objTxtID);
	objMenuTxt.style.left = findPosX(obj) + 27;
	objMenuTxt.style.top = findPosY(obj);
	
	if(objMenu.childNodes.length > 0)
		objMenu.removeChild(objMenu.childNodes.item(0));
	
	if(objMenuTxt.childNodes.length > 0)
		objMenuTxt.removeChild(objMenuTxt.childNodes.item(0));
	
	var nwChildTextNode = document.createTextNode(caption);
	objMenu.appendChild(nwChildTextNode);
	
	var nwChildTextNode2 = document.createTextNode(caption);
	objMenuTxt.appendChild(nwChildTextNode2);
	
	objMenuTxt.href = obj.childNodes[0].href;
	
	objMenu.style.display = 'block';
	objMenuTxt.style.display = 'block';
}

function menuOut(obj, objID, objTxtID)
{
	objA.style.visibility = 'visible';
	
	objMenu = document.getElementById(objID);
	objMenu.style.display = 'none';
	
	objMenuTxt = document.getElementById(objTxtID);
	objMenuTxt.style.display = 'none';
}

function menuStay(obj, objTxtID)
{
	objA.style.visibility = 'hidden';
	obj.style.display = 'block';
	
	document.getElementById(objTxtID).style.display = 'block';
}

function menuRemove(obj, objTxtID)
{
	obj.style.display = 'none';
	objA.style.visibility = 'visible';
	
	document.getElementById(objTxtID).style.display = 'none';
}

function agendaScrollLeft(id, by)
{
	var d = document.getElementById(id).scrollLeft = by;
}

function agendaScrollRight(id, by)
{
	var d = document.getElementById(id).scrollLeft = by;
}

function setClassName(name, id)
{
	id.className = name;
}

function timeoutSession(id, timeout)
{
	var d = document.getElementById(id);
	var to = timeout - 1;
	d.innerHTML = "session timeout: "+to+" sec";
	if(to != 0)
		window.setTimeout("timeoutSession('"+id+"', "+to+")", 1000);
	else d.innerHTML = "session timed out";
}

function swapNode(oNode, oWith)
{
	var oNodeOld = oNode.cloneNode(true);
	var oWithOld = oWith.cloneNode(true);
	
	oNode.parentNode.replaceChild(oNodeOld, oWith);
	oNode.parentNode.replaceChild(oWithOld, oNode);
}

function moveTo(el, to, resultID)
{
	if(typeof(el) != "object")
		el = document.getElementById(el);
	
	var iSelectedIndex = el.selectedIndex;
	var oSelectedOption = el.options[iSelectedIndex];
	
	switch(to)
	{
		case "top":
			var iIndex = 0;
			break;
		case "bottom":
			var iIndex = el.length - 1;
			break;
		case "1+":
			if(el.selectedIndex == 0)
				return false;
			var iIndex = iSelectedIndex - 1;
			break;
		case "1-":
			if(el.selectedIndex == (el.length - 1))
				return false;
			var iIndex = iSelectedIndex + 1;
			break;
	}
	
	var aNewOptions = new Array();
	aNewOptions[iIndex] = oSelectedOption;
	
	var iTeller = 0;
	for(var i = 0; i < el.options.length; i++)
	{
		if(iSelectedIndex != i)
		{
			if(!aNewOptions[iTeller])
			{
				aNewOptions[iTeller] = el.options[i];
				iTeller++;
			}
			else
			{
				iTeller++;
				aNewOptions[iTeller] = el.options[i];
				iTeller++;
			}
		}
	}
	
	 for(var j = 0; j < el.options.length; j++)
	 	el.removeChild(el.options[j]);
	
	var aValues = new Array();
	for(var i = 0; i < aNewOptions.length; i++)
	{
		aValues.push(aNewOptions[i].value);
		el.appendChild(aNewOptions[i]);
	}
	
	document.getElementById(resultID).value = join(",", aValues);
}

function join(sChar, aArr)
{
	var s = "";
	for(var i in aArr)
		s += aArr[i] + sChar;
	
	return s.substring(0, s.length - sChar.length);
}

function createWindow(sLink, sRef, sWidth, sHeight)
{
	var wndHandle = window.open(sLink, sRef, "width=" + sWidth + ", height=" + sHeight + ", resizable=no, scrollbars=yes, status=no, alwaysRaised=yes");
	wndHandle.focus();
}

function focusElement(el)
{
	var iFormCounter = 0;
	while(!document.forms[iFormCounter].elements[el] && iFormCounter < 10)
		iFormCounter++;
	
	document.forms[iFormCounter].elements[el].focus();
}

function putStr(target, text)
{
    if ( target )
    {
        if ( document.all && target.cursorPos )
        {
            var cursorPos = target.cursorPos;
            cursorPos.text = cursorPos.text.charAt(cursorPos.text.length - 1) == ' ' ? text + ' ' : text;
        }
        else if ( typeof target.selectionStart != 'undefined' )
        {
            var sStart = target.selectionStart;
            var sEnd = target.selectionEnd;
            target.value = target.value.substr(0, sStart) + text + target.value.substr(sEnd, target.value.length);
            target.selectionStart = sStart == sEnd ? sStart + text.length : sStart;
            target.selectionEnd = sStart + text.length;
        }
        else
        {
            target.value += text;
        }
        target.focus();
    }
}

function storeCursor(el)
{
	if (document.all && el.createTextRange)
		el.cursorPos = document.selection.createRange().duplicate();
}

function setCaretPosition(ctrl, pos)
{

	if(ctrl.setSelectionRange)
	{
		ctrl.focus();
		ctrl.setSelectionRange(pos,pos);
	}
	else if (ctrl.createTextRange) {
		var range = ctrl.createTextRange();
		range.collapse(true);
		range.moveEnd('character', pos);
		range.moveStart('character', pos);
		range.select();
	}
}

function doGetCaretPosition (ctrl) {

	var CaretPos = 0;
	// IE Support
	if (document.selection) {

		ctrl.focus ();
		var Sel = document.selection.createRange ();

		Sel.moveStart ('character', -ctrl.value.length);

		CaretPos = Sel.text.length;
	}
	// Firefox support
	else if (ctrl.selectionStart || ctrl.selectionStart == '0')
		CaretPos = ctrl.selectionStart;

	return (CaretPos);

}

function createTextField_product_ui(id, sname)
{
	var oTD = document.getElementById(id);
	var oText = document.createElement("input");
	oText.type = "text";
	oText.name = sname;
	oText.className = "text";
	oText.style.width = "50px";
	oText.style.display = "block";
	oText.style.marginTop = "3px";
	
	oTD.appendChild(oText);
}

function removeTextField_product_ui(id)
{
	var oTD = document.getElementById(id);
	
	if(oTD.childNodes.length > 0)
		oTD.removeChild(oTD.childNodes[oTD.childNodes.length-1]);
}

function disableElements()
{
	for(i = 0; i < arguments.length; i++)
	{
		var o = arguments[i];
		o.disabled = true;
	}
}

function undisableElements()
{
	for(i = 0; i < arguments.length; i++)
	{
		var o = arguments[i];
		o.disabled = false;
	}
}

function disableChildelements(obj)
{
	obj = document.getElementById(obj);
	var a = obj.childNodes.length;
	if(a > 0)
	{
		for(i = 0; i < a; i++)
		{
			if(obj.childNodes[i].type && obj.childNodes[i].type != "undefined")
				obj.childNodes[i].disabled = true;
		}
	}
}

function undisableChildelements(obj)
{
	obj = document.getElementById(obj);
	if(obj.childNodes.length > 0)
	{
		for(i = 0; i < obj.childNodes.length; i++)
		{
			if(obj.childNodes[i].type && obj.childNodes[i].type != "undefined")
				obj.childNodes[i].disabled = false;
		}
	}
}
