/*
AFHANKELIJK VAN CIPIX.JS
ALLEEN INCLUDEN ALS ER ONTWIKKELD WORDT, geen andere functies afhankelijk maken van deze functies
Wordt automatisch ge-include indien debug-modus geactiveerd wordt voor de sessie

Functies die tijdens de ontwikkeling van een website van pas komen voor test en debug doeleinden
*/

var debug=true; //Let op, checken via window.debug

//void wordt niet afgevangen en andere objecten dan instanties van prototypes ook niet
//Doet toSource() niet exact hetzelfde? Ja dus maar werkt niet in IE
function Deval(Waarde)
{
	//var constructor=Waarde.constructor.toString();
	var Uitvoer='';
	//switch (constructor.substring(constructor.indexOf(' ')+1,constructor.indexOf('(')))
	switch (typeof Waarde)
	{
		case 'object':
			if (Waarde==null) return 'null';
			if (Waarde.length)
			{
				for (var Positie=0;Positie<Waarde.length;Positie++){Uitvoer+=Deval(Waarde[Positie])+','}
				return '['+Uitvoer.substr(0,Uitvoer.length-1)+']';
			}
			else
			{
				for (var Key in Waarde){Uitvoer+=Deval(Key)+':'+Deval(Waarde[Key])+','}
			}
			return '({'+Uitvoer.substr(0,Uitvoer.length-1)+'})';//haakjes zijn belangrijk!
		case 'string':
			return '\''+Vervang(Vervang(Vervang(Vervang(Vervang(Vervang(Vervang(Vervang(Vervang(Waarde,'\\','\\\\',false),'\t','\\t',false),'\r','\\r',false),'\f','\\f',false),'\b','\\b',false),'\"','\\"',false),'\'','\\\'',false),'\n','\\n',false),'</'+'script>','</\'+\'script>',false)+'\'';
		case 'number':
			return Waarde;
		case 'undefined':
			return 'undefined';
		case 'boolean':
			return Waarde.toString();
		default:
			return 'new Object()';
	}
}

function Keys(Object)
{
	var Temp=new Array;
	for (Key in Object){Temp.push(Key)}
	return Temp;
}

//Retourneert de waarden van een object als Array
function Items(Object)
{
	var Temp=new Array;
	for (Key in Object){Temp.push(Object[Key])}
	return Temp;
}

function BekijkObject(Object)
{
	var Temp=Keys(Object).sort();
	for (var Positie=0;Positie<Temp.length;Positie++){Temp[Positie]+='='+Object[Temp[Positie]]}
	return Temp;
}

function Watch()
{
	//class die een watch-window (modeless/modal/div?) afbeeldt met daarin de meegegeven naam-waarde paren
}