	
	function Pagina (sTabBladKleur, sOndersteunendeKleur1, sOndersteunendeKleur2, sOndersteunendeKleur3) 
	{
		this.tabbladKleur = sTabBladKleur;
		this.ondersteunendeKleur1 = sOndersteunendeKleur1;
		this.ondersteunendeKleur2 = sOndersteunendeKleur2;
		this.ondersteunendeKleur3 = sOndersteunendeKleur3;
	}
	
	
	var onLoadObjectStack = new Array ();
	var onLoadFunctionStack = new Array ();
	

	function OnLoadObject (oObject) 
	{		
		onLoadObjectStack.push (oObject);		
	}
	
	
	function OnLoadFunction (sFunctieNaam)
	{		
		onLoadFunctionStack.push (sFunctieNaam);		
	}


	function initStack () {
		
		for (var i = 0; i < onLoadObjectStack.length; i++)
		{
			onLoadObjectStack[i].init ();
		}
		
		for (var i = 0; i < onLoadFunctionStack.length; i++)
		{
			eval (onLoadFunctionStack[i]);
		}
		
	}
	
	
	window.onload = function () 
	{
		initStack ();
	}
	
	
	function openWindow (sID, sURL, iBreedte, iHoogte, bScroll) 
	{
		if (iBreedte == 0) iBreedte = 400;
		if (iHoogte == 0) iHoogte = 400;
		
		var winWindow = window.open(sURL, sID, 'width=' + iBreedte + ',height=' + iHoogte + ',resizable=yes,status=no,scrollbars=yes');
		if (window.focus) winWindow.focus();
	}
	

	function Melding () 
	{		
		this.url = sDialogboxURL + '&dialogboxType=1'
	}
	
	
	Melding.prototype.openDialog = function (sMelding) 
	{		
		var meldingWindow = window.showModalDialog(this.url + '&dialogboxMelding=' + sMelding, 'Dialogbox', 'dialogHeight: 200px; dialogWidth: 300px; dialogTop: px; dialogLeft: px; edge: Raised; center: Yes; help: No; resizable: No; status: No; Scroll: No');
	}
		
	function Bevestiging () 
	{
		this.url = sDialogboxURL + '&dialogboxType=2'
	}
		
	Bevestiging.prototype.openDialog = function (sMelding) 
	{
		var bevestigingsWindow = window.showModalDialog(this.url + '&dialogboxMelding=' + sMelding, 'Dialogbox', 'dialogHeight: 200px; dialogWidth: 300px; dialogTop: px; dialogLeft: px; edge: Raised; center: Yes; help: No; resizable: No; status: No; Scroll: No');
		return bevestigingsWindow;
	}
		
	function isEmail(str) 
	{
		var supported = 0;
		if (window.RegExp) {
			var tempStr = "a";
			var tempReg = new RegExp(tempStr);
			if (tempReg.test(tempStr)) supported = 1;
		}
		if (!supported) return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
		var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
		var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,6}|[0-9]{1,3})(\\]?)$");
		return (!r1.test(str) && r2.test(str));
	}
		
	function formFoutmelding (oElem, sMelding) 
	{
		new Melding ().openDialog (sMelding);
		if (oElem)
			oElem.focus();
	}

	function RijItem () 
	{

	}
	
	RijItem.prototype.init = function (sId) 
	{	
		this.id = sId;		
		this.kleur = '';
		this.kleurSelected = '#' + kleurenVerdonkeren (oPagina.tabbladKleur, 2);		
		this.tabelRij = document.getElementById ('tabelRij' + this.id);		
		var self = this;		
	}
	
	RijItem.prototype.selecteer = function () 
	{
		this.tabelRij.style.backgroundColor = this.kleurSelected;
	}


	RijItem.prototype.deselecteer = function () 
	{
		this.tabelRij.style.backgroundColor = this.kleur;
	}
	
	
	RijItemMetActionMenu.prototype = new RijItem ();
	RijItemMetActionMenu.constructor = RijItem;
	RijItemMetActionMenu.superclass = RijItem.prototype;
	
	
	function RijItemMetActionMenu () {
		
	}
	
	
	RijItemMetActionMenu.prototype.init = function (sId) 
	{
		RijItemMetActionMenu.superclass.init.call(this, sId);
		this.delay = 10;
	}

	
	RijItemConcept.prototype = new RijItemMetActionMenu ();
	RijItemConcept.constructor = RijItemMetActionMenu;
	RijItemConcept.superclass = RijItemMetActionMenu.prototype;
	
	
	function RijItemConcept () {
		
	}
	
	
	RijItemConcept.prototype.init = function (sId, sMailId) 
	{
		RijItemConcept.superclass.init.call(this, sId);
	}	


	KleurRijItemMetActionMenu.prototype = new RijItemMetActionMenu ();
	KleurRijItemMetActionMenu.constructor = RijItemMetActionMenu;
	KleurRijItemMetActionMenu.superclass = RijItemMetActionMenu.prototype;

	function KleurRijItemMetActionMenu () 
	{
		
	}
	
	KleurRijItemMetActionMenu.prototype.init = function (sId, sKleur) 
	{		
		KleurRijItemMetActionMenu.superclass.init.call(this, sId);
		
		this.kleur = '#' + sKleur;
		this.kleurSelected = '#' + kleurenVerdonkeren (sKleur, 3);		
	}	
	
	PreviewMetActionMenu.prototype = new RijItemMetActionMenu ();
	PreviewMetActionMenu.constructor = RijItemMetActionMenu;
	PreviewMetActionMenu.superclass = RijItemMetActionMenu.prototype;

	
	function PreviewMetActionMenu () 
	{
		
	}
	
	PreviewMetActionMenu.prototype.init = function (sId) 
	{
		PreviewMetActionMenu.superclass.init.call(this, sId);
		
		this.kleur = '#' + oPagina.ondersteunendeKleur1;
		this.kleurSelected = '#' + kleurenVerdonkeren (oPagina.ondersteunendeKleur1, 2);
	}	
	
	
	RijItemMetActionMenuCelKleur.prototype = new RijItemMetActionMenu ();
	RijItemMetActionMenuCelKleur.constructor = RijItemMetActionMenu;
	RijItemMetActionMenuCelKleur.superclass = RijItemMetActionMenu.prototype;

	
	function RijItemMetActionMenuCelKleur () 
	{
		
	}
	
	
	RijItemMetActionMenuCelKleur.prototype.selecteer = function ()
	{	
		RijItemMetActionMenuCelKleur.superclass.selecteer.call(this);		
		for (var i = 0; i < celKleuren.length; i++) 
		{			
			var oCel = document.getElementById ('mailinggroepCel' + this.id + i);
			oCel.style.backgroundColor = celKleuren[i].kleurSelected;			
		}
	}


	RijItemMetActionMenuCelKleur.prototype.deselecteer = function () 
	{	
		RijItemMetActionMenuCelKleur.superclass.deselecteer.call(this);
		for (var i = 0; i < celKleuren.length; i++)
		{			
			var oCel = document.getElementById ('mailinggroepCel' + this.id + i);
			oCel.style.backgroundColor = celKleuren[i].kleur;			
		}
		
	}


	function CelKleur (sKleur) 
	{	
		this.kleur = sKleur;
		this.kleurSelected = kleurenVerdonkeren (this.kleur, 2);		
	}
	
	
	function xPos (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 yPos (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;
	}
	
	
	function decToHex (dec) 
	{
		var hexStr = '0123456789ABCDEF';
		var low = dec % 16;
		var high = (dec - low) / 16;
		hex = '' + hexStr.charAt(high) + hexStr.charAt(low);
		return hex;
	}
	
	
	function hexToDec (hex)
	{
		return parseInt (hex,16); 
	}

	function kleurVerdonkeren (sKleurHex, iStappen) 
	{	
		var iStapGrootte = 0.03;
		var iKleur = hexToDec (sKleurHex);		
		iKleur = iKleur - (iKleur * iStappen * iStapGrootte);		
		if (iKleur & 0) iKleur = 0;		
		return decToHex (iKleur);
	}

	function kleurenVerdonkeren (sKleurenHex, iStappen) 
	{
		
		var sKleurRood = kleurVerdonkeren (sKleurenHex.substr (0, 2), iStappen);
		var sKleurGroen = kleurVerdonkeren (sKleurenHex.substr (2, 2), iStappen);
		var sKleurBlauw = kleurVerdonkeren (sKleurenHex.substr (4, 2), iStappen);
		
		return sKleurRood + sKleurGroen + sKleurBlauw;
	}
	

	function debug (sId, sTekst) 
	{
		var oDebugPane = document.getElementById ('debugPane');
		oDebugPane.innerHTML += '['+ sId + ': ' + sTekst + '] ';
	}
