/*

*/
function loaddefinitions() {
	//selecteren definitielijst en artikeltekst
	var deflist = document.getElementById('deflist');
	var articletxt = document.getElementById('articletxt');
	var teststring = ' .,'
	if(deflist != null && articletxt != null)
	{
		//ophalen definities en beschrijvingen
		var theterms = deflist.getElementsByTagName('dt');
		var thetext = deflist.getElementsByTagName('dd');
		var regexp = '';
		
		if(theterms.length == thetext.length)
		{
			//loopen door de definities
			for (var i=0;i<theterms.length;i++)
			{
				
				/*
				een hoop TEST meuk die niet werkt....
				*/
				//   "/(<!--\[\*\*\]-->.*?\b)(' + theterms[i].innerHTML + ')(\b.*?<!--\[\/\*\]-->)/"
				
				
				//regexp = new RegExp('(<!--\\[\\*\\*\\]-->.*?)('+theterms[i].innerHTML+')(.*?<!--\\[\\/\\*\\]-->)','im');
				
				
				//regexp = new RegExp('(<!--\\[\\*\\*\\]-->.*?)(?!<!--\\[\\/\\*\\]-->.*?)('+theterms[i].innerHTML+')(?!.*?<!--\\[\\*\\*\\]-->)(.*?<!--\\[\\/\\*\\]-->)');
				
				
				//regexp = eval('/' + theterms[i].innerHTML + '/'); //  [^(<a )]\SWaffen-SS\S[^(</a>)]
				//regexp = eval('/(<!--\[\*\*\]-->.*?)(' + theterms[i].innerHTML + ')(.*?<!--\[\/\*\]-->)/im');
				//regexp = eval('/<!--\[\*\*\]-->.*?' + theterms[i].innerHTML + '.*?<!--\[\/\*\]-->/m');
				//regexp = eval('/<!--[**]-->.*?' + theterms[i].innerHTML + '.*?<!--[\*]-->/m');
				//alert(theterms[i].innerHTML + ':\n' + articletxt.innerHTML.search(regexp));
				//articletxt.innerHTML = articletxt.innerHTML.replace(regexp,'$1<span id="defterm_'+i+'" class="defterm" onmouseover="showdef('+i+')" onmouseout="hidedef('+i+')">$2</span>$3');
				//if(i==0)
				//{
					//alert('Wehrmacht\n'+ articletxt.innerHTML.search(/<!--\[\*\*\]-->.*?Wehrmacht.*?<!--\[\/\*\]-->/mgi));
					//articletxt.innerHTML = articletxt.innerHTML.replace(/(<!--\[\*\*\]-->.*?)(Wehrmacht)(.*?<!--\[\/\*\]-->)/mgi,'$1<span class="defterm">$2</span>$3')
					//alert(articletxt.innerHTML);
				//}
				//alert(theterms[i]);
				
				
				
				
				/*
				dit was mijn beste gok....
				
				regexp = new RegExp('(<!--\\[\\*\\*\\]-->.*?)(?!<!--\\[\\/\\*\\]-->.*?)('+theterms[i].innerHTML+')(?!.*?<!--\\[\\*\\*\\]-->)(.*?<!--\\[\\/\\*\\]-->)');
				regexp.global = true;
				regexp.ignoreCase = true;
				regexp.multiline = true;
				articletxt.innerHTML = articletxt.innerHTML.replace(regexp,function(whole,p1,p2,p3,p4,p5) {
					return '<span style="color:green">'+p1+'<span id="defterm_'+i+'" class="defterm" onmouseover="showdef('+i+')" onmouseout="hidedef('+i+')">'+p2+'</span>'+p3+'</span>';
				});*/
				
				pos1 = articletxt.innerHTML.indexOf(theterms[i].innerHTML,0);
				while(pos1 >=0)
				{
					pos2 = pos1 + theterms[i].innerHTML.length;
					charvoor = articletxt.innerHTML.substr(pos1-1,1);
					charna   = articletxt.innerHTML.substr(pos2,1);
					lastcommin   = articletxt.innerHTML.substr(0, pos1).lastIndexOf('<!--[**]-->');
					lastcommount = articletxt.innerHTML.substr(0, pos1).lastIndexOf('<!--[/*]-->');
					
					if(teststring.indexOf(charvoor)>=0 && teststring.indexOf(charna)>=0 && lastcommin > lastcommount)
					{
						newstring = '<span id="defterm_'+i+'" class="defterm" onmouseover="showdef('+i+')" onmouseout="hidedef('+i+')">'+theterms[i].innerHTML+'</span>'
						articletxt.innerHTML = articletxt.innerHTML.substr(0, pos1) + newstring + articletxt.innerHTML.substr(pos2, articletxt.innerHTML.length);
						
						//alert('lastcommin: ' + lastcommin +', lastcommount: ' + lastcommount);
						//alert(theterms[i].innerHTML + ': ' + pos1 + 't/m' + pos2 + '\nvoor: |' + articletxt.innerHTML.charCodeAt(pos1-1) + '|\nna: |' + articletxt.innerHTML.charCodeAt(pos2) + '|'); 
						break;	
					}				
				
					pos1 = articletxt.innerHTML.indexOf(theterms[i].innerHTML,pos2+1);
				}
				
				
				/*
				dit is uiteraard niet goed maar geeft ongeveer aan waar we heen willen
				*/
				//articletxt.innerHTML = articletxt.innerHTML.replace(theterms[i].innerHTML,'<span id="defterm_'+i+'" class="defterm" onmouseover="showdef('+i+')" onmouseout="hidedef('+i+')">'+theterms[i].innerHTML+'</span>');
				
				
			}
		}
		
		
		//verbergen van de definitielijst als alles klaar is (blijft dus getoond als je geen javascript hebt)
		//tijdelijk toch maar even aangelaten...
		deflist.style.display = 'none';
	}
}

function showdef(id) {
	//plaatsen van de definitiebox
	var thetext = document.getElementById('deflist').getElementsByTagName('dd')[id];
	var theterm = document.getElementById('deflist').getElementsByTagName('dt')[id];
	var termelm = document.getElementById('defterm_' + id);
	if(thetext != null && theterm != null && termelm != null)
	{
		//alert(thetext.innerHTML);
		var elmpos = findPos(termelm);
		
		var deftip = document.createElement('div');
		deftip.id = 'def_' + id;
		deftip.innerHTML = '<strong>' + theterm.innerHTML + '</strong>: ' + thetext.innerHTML;
		deftip.className = 'defbox';
		deftip.style.left = elmpos[0] + 'px';
		deftip.style.top = (elmpos[1] + 24) + 'px';
		document.body.appendChild(deftip);
	}
}
function hidedef(id) {
	//... en weer verwijderen van de definitiebox
	var thebox = document.getElementById('def_' + id)
	if(thebox != null)
	{
		document.body.removeChild(thebox);
	}
}

function findPos(obj) {
	//posities bepalen
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}