function addCommas(nStr){
	nStr += '';
	x = nStr.split(',');
	x1 = x[0];
	x2 = x.length > 1 ? ',' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + '.' + '$2');
	}
	return x1 + x2;
}

function popUp(URL, breedte, hoogte, scrolling) {
	day = new Date();
	id = day.getTime();
	eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0, scrollbars=" + scrolling + ", location=0, statusbar=0, menubar=0, resizable=0, width=" + breedte + ", height=" + hoogte + ", left = 330, top = 200');");
}
function toggle(ID){
	var obj = document.getElementById(ID);
	if(obj.style.visibility == 'hidden'){
		obj.style.visibility = 'visible';
	} else {
		obj.style.visibility = 'hidden';
	}
}
function toggle_full(ID){
	var obj = document.getElementById(ID);
	if(obj.style.display == 'none'){
		obj.style.display = 'block';
	} else {
		obj.style.display = 'none';
	}
}
function show(ID){
	var obj = document.getElementById(ID);
	obj.style.visibility = 'visible';
}
function show_full(ID){
	var obj = document.getElementById(ID);
	obj.style.display = 'block';
}
function hide(ID){
	var obj = document.getElementById(ID);
	obj.style.visibility = 'hidden';
}
function hide_full(ID){
	var obj = document.getElementById(ID);
	obj.style.display = 'none';
}

function fadein(elementid, speed){ 
	
	if(!speed){
		speed = 500;
	}
	
	var obj = document.getElementById(elementid);
	obj.style.opacity = '0.0';
	obj.style.visibility = 'visible';
	obj.style.display = 'block';

	i=0;
	if(navigator.appName == "Microsoft Internet Explorer"){
		fadepercentage = Array( '10', '30', '50', '70', '90', '100' );
		interval = self.setInterval("changeperc_ie('"+elementid+"')", (speed/10) )
	} else {
		fadepercentage = Array( '0.1', '0.2', '0.3', '0.4', '0.5', '0.6', '0.7', '0.8', '0.9', '1.0' ); 
		interval = self.setInterval("changeperc_gecko('"+elementid+"')", (speed/10) )
	}
	
	setTimeout("clearInterval('"+interval+"')",speed);

}
function fadeout(elementid, speed){
	
	actief = document.getElementById(elementid);
	if(actief.style.visibility=='visible'){
	
		if(!speed){
			speed = 500;
		}
	
		i=0;
		if(navigator.appName == "Microsoft Internet Explorer"){
			fadepercentage = Array( '90', '80', '70', '60', '50', '40', '30', '20', '10', '0' ); 
			interval = self.setInterval("changeperc_ie('"+elementid+"')", (speed/10) )
		} else {
			fadepercentage = Array( '0.9', '0.8', '0.7', '0.6', '0.5', '0.4', '0.3', '0.2', '0.1', '0.0' ); 
			interval = self.setInterval("changeperc_gecko('"+elementid+"')", (speed/10) )
		}
		
		setTimeout("clearInterval('"+interval+"')",speed);
		setTimeout("hide('"+elementid+"')",speed);
	}
}

function changeperc_ie(x) { 
	var x= document.getElementById(x);
	if (x != null){
		x.style.filter = "alpha(opacity=" + fadepercentage[i] + ")";
	}
	i++;
}
function changeperc_gecko(x) { 
	var x= document.getElementById(x);
	if (x != null){
		x.style.opacity = fadepercentage[i];
	}
	i++;
}


function random_char(charlist){

	var num = Math.floor(Math.random() * charlist.length);
	return charlist.charAt(num);
}
function random_pass(){
	var length = 8;
	var chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";

	var pass = "";
	var i=0;
	
	for (i=0; i<length; i++)
	{
		pass = pass + random_char(chars);
	}
	return pass;
}
function randomPass(){
	
	var pass1 = document.getElementById('pass1');
	var pass2 = document.getElementById('pass2');
	
	pass1.value = random_pass();
	pass2.value = pass1.value;

}

function popOpen(id) {
	var topOffset = 1;
	setSize(topOffset);
	var overShade = document.getElementById(id);
	var topPad =  pos+topOffset;
	// height-padding = div height
	overShade.style.height = (ph - topPad) + 'px'; /* remove topPad from height */
	overShade.style.width = pw + 'px';
	overShade.style.paddingTop = topPad + 'px';
	overShade.style.display = 'block';
	if (document.all && !navigator.appVersion.match(/MSIE 7.0/)) {
		coverSelects(overShade);
	}
}
function add_emoticon(area, code){
	document.getElementById(area).value += code;
}

function setImg(id, afb, bgcolor){
	var div = document.getElementById(id);
	div.style.background = bgcolor+" url('"+afb+"') no-repeat center center";
}


function zoeken(e, location, keyword){
	var characterCode
	var keyword = keyword.replace(" ", "+");

	if(e && e.which){
		e = e
		characterCode = e.which
	} else{
		e = event
		characterCode = e.keyCode
	}

	if(characterCode == 13){ // ascii 13 = enter key
		document.location.href = location+keyword;
		return false 
	} else{
		return true 
	}

}

function overShade(){
	var topOffset = 1;
	setSize(topOffset);
	
	var overShade = document.getElementById('overShade');
	var topPad =  pos+topOffset;
	// height-padding = div height
	overShade.style.height = (ph - topPad) + 'px'; /* remove topPad from height */
	overShade.style.width = pw + 'px';
	overShade.style.paddingTop = topPad + 'px';
	overShade.style.display = 'block';
}

function showAlert(){
	var topOffset = 1;
	setSize(topOffset);
	
	var showAlert = document.getElementById('showAlert');
	var topPad =  pos+topOffset;
	// height-padding = div height
	showAlert.style.marginTop = topPad + 'px';
	showAlert.style.display = 'block';
}

function setSize(topOffset) { /* sets size of shade */
	if (window.pageYOffset != null) { /* moz and safari */
		pos = window.pageYOffset;
		ph = document.documentElement.scrollHeight;
		pw = document.documentElement.scrollWidth;
		if (document.body.scrollHeight > document.documentElement.scrollHeight) {
			ph = document.body.scrollHeight;
			pw = document.body.scrollWidth;
		}
	} else if (document.documentElement.scrollTop > document.body.scrollTop) { /* ie, catch if Standards compliance mode */
		pos = document.documentElement.scrollTop;
		ph = document.documentElement.scrollHeight;
		pw = document.documentElement.scrollWidth;
		if (document.documentElement.clientHeight > document.documentElement.scrollHeight) {
			ph = document.documentElement.clientHeight;
		}
	} else if (document.body != null) { /* if IE 5.5 */
		pos = document.body.scrollTop;
		ph = document.body.scrollHeight;
		pw = document.body.scrollWidth;
		if (document.documentElement.scrollHeight > document.body.scrollHeight) {
			ph = document.documentElement.scrollHeight;
		}
		ph = ph + pos + topOffset; /* fix box model */
	}
}


function ellipsis(root)
{
	if (ellipsis.__native == undefined)
	{
		ellipsis.__native = true;
		if (document.defaultView && document.defaultView.getComputedStyle)
		{
			var foo = document.createElement('div');
			foo.style.cssText = 'text-overflow:ellipsis;-o-text-overflow:ellipsis';
			if (!foo.style.cssText)
				ellipsis.__native = false;
		}
	}

	if (!ellipsis.__native)
	{
		if (!root)
			getElementsByClassName('ellipsis', null, null, ellipsis_do);
		else
			ellipsis_do(root);
	}
}

function ellipsis_table(tableId)
{
	if (is.ie || is.khtml)
	{
		var productTable = document.getElementById(tableId);
		if (productTable)
		{
			var tableBody = productTable.getElementsByTagName('tbody')[0];
			var row = tableBody && tableBody.rows[0];
			if (row)
			{
				var cell, i = 0, j = 0;
				while (row && (cell = row.cells[i]))
				{
					if (cell.colSpan && cell.colSpan > 1)
					{
						row = tableBody.rows[++j];
						continue;
					}

					if (!hasClass(cell, 'ellipsis'))
						productTable.rows[0].cells[i].width = cell.clientWidth - (is.ie ? 8 : 0);

					i++;
				}

				productTable.style.tableLayout = 'fixed';
			}
		}
	}
}

function ellipsis_do(root, ellipsis_word)
{
	// speed things up
	if (root.clientWidth)
	{
		if (root.nodeName != 'TD')
		{
			root.style.width = root.clientWidth + 'px';
			root.style.position = 'fixed';
		}

		var s = [root], e, o, w;

		while ((e = s.pop()))
		{
			do
			{
				switch (e.nodeType)
				{
					case 1:
						if (e.style.display != 'none')
						{
							if (document.defaultView.getComputedStyle(e, null).getPropertyValue('overflow') == 'hidden')
							{
								ellipsis_overflow(e, ellipsis_word);
							}
							else
							{
								if ((o = e.nextSibling)) s.push(o);
								e = e.firstChild;
								break;
							}
						}

					default:
						e = e.nextSibling;
				}
			}
			while (e);
		}

		root.style.position = '';
	}
}

function ellipsis_overflow(p, ellipsis_word)
{
	var w = p.clientWidth;
	if (w && p.scrollWidth > w)
	{
		var s = [p], e, o, q, l;

		while ((e = s.pop()))
		{
			do
			{
				switch (e.nodeType)
				{
					case 1:
						if ((o = e.previousSibling)) s.push(o);
						e = e.lastChild;
						break;

					case 3:
						if (/[^\t\n\r ]/.test(e.data))
						{
							// Take an educated guess on what the length of the text should be
							q = e.nodeValue;
							l = Math.floor((q.length * w) / p.scrollWidth) - 1;
							if (l > 0)
							{
								do
								{
									e.nodeValue = q.substr(0, --l) + '...';
								}
								while (l && (p.scrollWidth > w || (ellipsis_word && e.nodeValue.charAt(l-1) != ' ')));

								if (l > 0) return;
							}

							e.nodeValue = '';
						}

					default:
						e = e.previousSibling;
				}
			}
			while(e);
		}
	}
}
