function toggleColor(tr, color)
{
	var elements = tr.getElementsByTagName("a");
	
	if (elements.length == 0)
	{
		elements = tr.getElementsByTagName("td");
	}
	
	for (var i = 0; i < elements.length; i++)
	{
		elements[i].style.color = "#" + color;
	}
}

function message(type)
{
	var msg = "";
	switch (type)
	{
		case "f":
			msg = "Het bestand is te groot om te worden geupload.";
			break;
	}
	alert(msg);
}

function checkMail(el, msg)
{
	var regX = new RegExp(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*\.(\w{2}|(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum))$/);
	if (!regX.test(el.username.value))
	{
		alert(msg);
		return false
	}
	return true;
}

window.setInterval(function()
{
	if (typeof xajax_ping != "undefined")
		xajax_ping();
}, 60000);

/**
 * connect using AJAX and refresh data send from PHP - MySQL
 */
var http_request = false;
function makeRequest(url, parameters, bool, msg)
{
	document.getElementById("myspan").className = "loader";
	document.getElementById("myspan").innerHTML = "";
	
	http_request = false;
	if(window.XMLHttpRequest) // mozilla, safari,...
	{
		http_request = new XMLHttpRequest();
		if(http_request.overrideMimeType)
		{
			http_request.overrideMimeType('text/html');
		}
	}
	else if (window.ActiveXObject) // IE
	{
		try
		{
			http_request = new ActiveXObject("Msxml12.XMLHTTP");
		}
		catch(e) 
		{
			try
			{
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch(e) {}
		}
	}
	if (!http_request)
	{
		alert('Cannot create XMLHTTP instance');
		return false;
	}
	
	if (bool == true)
	{
		http_request.onreadystatechange = alertContents;
	}
	else if (msg != '')
	{
		http_request.onreadystatechange = alert(msg);
	}
		
	http_request.open('POST', url, true);
	http_request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	http_request.setRequestHeader("Content-Length", parameters.length);
	http_request.send(parameters);
}

function firstVisit()
{
	makeRequest('index.php?action=firstVisit','',false,'');
}

function openPopupDiv(id)
{
	var el = document.getElementById(id);
	var ol = document.getElementById('overlay');
	var sa = document.getElementById('shadow');
	
	el.style.display == "none" ? el.style.display = "block" : el.style.display = "none";
	ol.style.display == "none" ? ol.style.display = "block" : ol.style.display = "none";
	sa.style.display == "none" ? sa.style.display = "block" : sa.style.display = "none";
	
	if (el.style.display == "block")
	{
		var dim = getScreenDimensions();
		var width = 0;
		var height = 0;

		// determine browser
		if (typeof(window.innerWidth) == 'number')
		{
			//alert('FF');
			width = document.body.offsetWidth;
			height = document.body.offsetHeight;
		}
		else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight))
		{
			//alert('IE 6+');
			width = document.documentElement.clientWidth;
			height = document.body.offsetHeight;
		}
		else if (document.body && (document.body.clientWidth || document.body.clientHeight))
		{
			//alert('IE 4');
			width = document.body.clientWidth;
			height = document.body.clientHeight + 390;
		}
		
		var yPos = dim.scrollTop + ((dim.availHeight / 2) - (el.offsetHeight / 2));
		if (yPos <= 0)
			yPos = 0;
		
		el.style.top = yPos + 'px';
		el.style.left = ((width / 2) - (el.offsetWidth / 2)) + 'px';
		
		ol.style.width = width + 'px';
		ol.style.height = height + 'px';
		
		sa.style.width = el.offsetWidth + 'px';
		sa.style.height = el.offsetHeight + 'px';
		sa.style.top = (yPos + 3) + 'px';
		sa.style.left = ((width / 2) - (el.offsetWidth / 2) + 3) + 'px';		
	}
}

function cycleOtherwise(el)
{
	var ot = document.getElementById('calcOtherwise');
	var otIn = document.getElementById('calcOtherwiseInput');
	
	if (el.options[el.selectedIndex].value == "anders")
		ot.style.display = 'block';
	else
	{
		ot.style.display = 'none';
		otIn.value = '';
	}
}

function getValues()
{
	var h = document.getElementById("calcHeight").value;
	var w = document.getElementById("calcWidth").value;
	var material = document.getElementById("calcMaterial");
	material = material.options[material.selectedIndex].value;
	var finish = document.getElementById("calcFinish");
	finish = finish.options[finish.selectedIndex].value;
	var otherwise = document.getElementById("calcOtherwiseInput").value;
	var rubber = document.getElementById("calcRubberBands").value;
	var total = document.getElementById("calcTotal").value;
	
	var valueArray = {
		h: h,
		w: w,
		m: material,
		f: finish,
		o: otherwise,
		r: rubber,
		t: total
	}
	
	return valueArray;
}

function calculate()
{
	var values = getValues();
	var total = document.getElementById("calcTotal");
	
	var squareMtr = values['h'] * values['w'] / 10000;
	var price = 0;
	
	if (squareMtr < 1)
		price += 1 * highPrice; // alert('te klein');
	else if (squareMtr <= 4)
		price += squareMtr * highPrice; //alert('E 20,00 per m2');
	else if (squareMtr > 4 && squareMtr <= 10)
		price += squareMtr * middlePrice; //alert('E 18,00 per m2');
	else if (squareMtr > 10 && squareMtr <= 20)
		price += squareMtr * lowPrice; //alert('E 17,00 per m2');
	else if (squareMtr > 20)
	{
		document.getElementById("submitBtn").style.display = 'none';
		document.getElementById("fakeSubmitBtn").style.display = 'block';
		total.value = '';
		document.getElementById('toLarge').style.display = 'block';
	}
			
	if (values['r'] > 0 && squareMtr <= 20)
		price += values['r'] * 1,00; // alert('E 1,00 per m2');
	
	if (squareMtr > 0 && squareMtr <= 20)
	{
		total.value = price.toFixed(2).replace(/\./,',');
		document.getElementById("submitBtn").style.display = 'block';
		document.getElementById("fakeSubmitBtn").style.display = 'none';
		document.getElementById('toLarge').style.display = 'none';
	}
	else if(squareMtr == 0)
	{
		document.getElementById("submitBtn").style.display = 'none';
		document.getElementById("fakeSubmitBtn").style.display = 'block';
		//alert("Er zijn geen waardes ingevoerd.");
	}
}

function openLogin()
{
	var el = document.getElementById('loginDiv');
	var ol = document.getElementById('overlay');
	var sa = document.getElementById('shadow');
	
	if (el.style.display == 'none')
	{
		var dim = getScreenDimensions();	
		
		// determine browser
		if (typeof(window.innerWidth) == 'number')
		{
			//alert('FF');
			width = document.body.offsetWidth;
			height = document.body.offsetHeight;
		}
		else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight))
		{
			//alert('IE 6+');
			width = document.documentElement.clientWidth;
			height = document.body.offsetHeight;
		}
		else if (document.body && (document.body.clientWidth || document.body.clientHeight))
		{
			//alert('IE 4');
			width = document.body.clientWidth;
			height = document.body.clientHeight + 390;
		}
		
		el.style.display = 'block';
		var yPos = dim.scrollTop + ((dim.availHeight / 2) - (el.offsetHeight / 2));
		if (yPos <= 0)
			yPos = 0;
		
		el.style.top = yPos + 'px';
		el.style.left = ((width / 2) - (el.offsetWidth / 2)) + 'px'; 
		
		ol.style.display = 'block';
		ol.style.width = width + 'px';
		ol.style.height = height + 'px';
		
		sa.style.display = 'block';
		sa.style.width = el.offsetWidth + 'px';
		sa.style.height = el.offsetHeight + 'px';
		sa.style.top = (yPos + 3) + 'px';
		sa.style.left = ((width / 2) - (el.offsetWidth / 2) + 3) + 'px';
	}
	else
	{
		el.style.display = 'none';
		ol.style.display = 'none';
		sa.style.display = 'none';
		
		// reset inputfields
		document.loginForm2.username2.value = 'Gebruikersnaam';
		document.loginForm2.fakePW2.value = 'Wachtwoord';
		
		document.getElementById('wachtwoordShow2').style.display = 'none';
		document.getElementById('wachtwoordHide2').style.display = 'block';
	}
}

var currTab = 6;
var btn = '';
function switchTab(tabId)
{
	/*if (currTab == -1)
		currTab = 3;*/
	
	if (tabId != currTab)
	{
		document.getElementById('tab_' + currTab).style.display = "none";
		document.getElementById('tab_' + currTab + '_on').className = "divTabNormal";
		btn = document.getElementById('btn_' + currTab);
		if (btn)
			btn.style.display = "none";
		
		// change current tab in selected tab
		currTab = tabId;
		
		document.getElementById('tab_' + currTab).style.display = "block";
		document.getElementById('tab_' + currTab + '_on').className = "divTabActive";
		btn = document.getElementById('btn_' + currTab);
		if (btn)
			btn.style.display = "block";
		
		if (currTab == 86)
		{
			document.getElementById('orderBtn').style.display = 'block';
			document.getElementById('nextBtn').style.display = 'none';
			generateInfo();
		}
		else
		{
			document.getElementById('orderBtn').style.display = 'none';
			document.getElementById('nextBtn').style.display = 'block';
		}
	}
}

var currTabProd = 1;
function switchTabProd(tabId)
{
	if (tabId != currTabProd)
	{
		document.getElementById('tab_' + currTabProd).style.display = 'none';
		document.getElementById('tab_' + currTabProd + '_on').className = 'divTabNormalProd';
		
		currTabProd = tabId;
		
		document.getElementById('tab_' + currTabProd).style.display = 'block';
		document.getElementById('tab_' + currTabProd + '_on').className = 'divTabActiveProd';
	}
}

function check_register(f, msg)
{
	var checkFail = false;
	var pw = "";var pw2 = "";
	var country = document.getElementById('country_id').value;
	
	for (var i = 0; i < f.elements.length; i++)
	{
		switch(f.elements[i].name)
		{
			case "email":
				var regX = new RegExp(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*\.(\w{2}|(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum))$/);
				if (!regX.test(f.elements[i].value))
				{
					checkFail = true;
					document.getElementById("email").className = "failed";
				}
				else
				{
					document.getElementById("email").className = "normal";
				}
				break;
			case "username":
				var regX = new RegExp(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*\.(\w{2}|(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum))$/);
				if (!regX.test(f.elements[i].value))
				{
					checkFail = true;
					document.getElementById("username").className = "failed";
				}
				else
				{
					document.getElementById("username").className = "normal";
				}
				break;
			case "name":
				if (f.elements[i].value == "")
				{
					checkFail = true;
					document.getElementById("name").className = "failed";
				}
				else
				{
					document.getElementById("name").className = "normal";
				}
				break;
			case "companyType":
				if (f.elements[i].value == "")
				{
					checkFail = true;
					document.getElementById("companyType").className = "failed";
				}
				else
				{
					document.getElementById("companyType").className = "normal";
				}
				break;
			case "btw":
				var regX = new RegExp(/[ .-]/); // test of er spaties, punten of strepen in voorkomen
				if (f.elements[i].value != "" && country == "NL")
				{
					if (regX.test(f.elements[i].value))
					{
						checkFail = true;
						document.getElementById("btw").className = "failed";
					}
					else if (f.elements[i].value.length > 14)
					{
						checkFail = true;
						document.getElementById("btw").className = "failed";
					}
					else
						document.getElementById("btw").className = "normal";
				}
				else if (country != "NL")
				{
					if (regX.test(f.elements[i].value))
					{
						checkFail = true;
						document.getElementById("btw").className = "failed";
					}
					else if (f.elements[i].value.length > 14)
					{
						checkFail = true;
						document.getElementById('btw').className = "failed";
					}
					else if (f.elements[i].value == "")
					{
						checkFail = true;
						document.getElementById("btw").className = "failed";
					}
					else
						document.getElementById("btw").className = "normal";
				}
				else
					document.getElementById("btw").className = "normal";
				break;
			case "gender":
				if (f.elements[i].value == "")
				{
					checkFail = true;
					document.getElementById("gender").className = "failed";
				}
				else
				{
					document.getElementById("gender").className = "normal";
				}
				break;
			case "firstName":
				if (f.elements[i].value == "")
				{
					checkFail = true;
					document.getElementById("firstName").className = "failed";
				}
				else
				{
					document.getElementById("firstName").className = "normal";
				}
				break;
			case "lastName":
				if (f.elements[i].value == "")
				{
					checkFail = true;
					document.getElementById("lastName").className = "failed";
				}
				else
				{
					document.getElementById("lastName").className = "normal";
				}
				break;
			case "address":
				if (f.elements[i].value == "")
				{
					checkFail = true;
					document.getElementById("address").className = "failed";
				}
				else
				{
					document.getElementById("address").className = "normal";
				}
				break;
			case "number":
				if (f.elements[i].value == "")
				{
					checkFail = true;
					document.getElementById("number").className = "failed";
				}
				else
				{
					document.getElementById("number").className = "normal";
				}
				break;
			case "postal":
				//var regX = new RegExp(/^[1-9]{1}[0-9]{3}\s?[a-zA-Z]{2}$/);
				if (f.elements[i].value == "" || f.elements[i].value == "1234 XX") // !regX.test(f.elements[i].value) ||
				{
					checkFail = true;
					document.getElementById("postal").className = "failed";
				}
				else
				{
					document.getElementById("postal").className = "normal";
				}
				break;
			case "city":
				if (f.elements[i].value == "")
				{
					checkFail = true;
					document.getElementById("city").className = "failed";
				}
				else
				{
					document.getElementById("city").className = "normal";
				}
				break;
			case "country":
				if (f.elements[i].value == "")
				{
					checkFail = true;
					document.getElementById("country").className = "failed";
				}
				else
				{
					document.getElementById("country").className = "normal";
				}
				break;
			case "phone":
				//var regX = new RegExp(/^(\d{3})(\s|[-])(\d{7})|(\d{4})(\s|[-])(\d{6})|\d{10}$/);
				//var regX = new RegExp(/^\d{10}$/);
				//if (!regX.test(f.elements[i].value))
				if (f.elements[i].value == "")
				{
					checkFail = true;
					document.getElementById("phone").className = "failed";
				}
				else
				{
					document.getElementById("phone").className = "normal";
				}
				break;
			case "fax":
				var regX = new RegExp(/^\d{10}$/);
				if (f.elements[i].value != "")
				{
					if (!regX.test(f.elements[i].value))
					{
						checkFail = true;
						document.getElementById("fax").className = "failed";
					}
					else
						document.getElementById("fax").className = "normal";
				}
				else
				{
					document.getElementById("fax").className = "normal";
				}
				break;
			case "mobile":
				var regX = new RegExp(/^\d{10}$/);
				if (f.elements[i].value != "")
				{
					if (!regX.test(f.elements[i].value))
					{
						checkFail = true;
						document.getElementById("mobile").className = "failed";
					}
					else
						document.getElementById("mobile").className = "normal";
				}
				else
				{
					document.getElementById("mobile").className = "normal";
				}
				break;
			case "contact":
				if (f.elements[i].value == "")
				{
					checkFail = true;
					document.getElementById("contact").className = "failed";
				}
				else
				{
					document.getElementById("contact").className = "normal";
				}
				break;
			case "reference":
				if (f.elements[i].value == "")
				{
					checkFail = true;
					document.getElementById("reference").className = "failed";
				}
				else
				{
					document.getElementById("reference").className = "normal";
				}
				break;
			case "password":
				if (userId > -1)
				{
					if (f.elements[i].value != "")
					{
						if(f.elements[i].value.length < 6)
						{
							checkFail = true;
							document.getElementById("pw").className = "failed";
						}
						else
						{
							pw = f.elements[i].value;
							document.getElementById("pw").className = "normal";
						}	
					}
				}
				else
				{
					if (f.elements[i].value == "" || f.elements[i].value.length < 6)
					{
						checkFail = true;
						document.getElementById("pw").className = "failed";
					}
					else
					{
						pw = f.elements[i].value;
						document.getElementById("pw").className = "normal";
					}
				}
				break;
			case "password2":
				if (userId > -1)
				{
					if (f.elements[i].value != "")
					{
						if(f.elements[i].value.length < 6)
						{
							checkFail = true;
							document.getElementById("pw2").className = "failed";
						}
						else
						{
							pw2 = f.elements[i].value;
							document.getElementById("pw2").className = "normal";
						}
					}
				}
				else
				{
					if (f.elements[i].value == "" || f.elements[i].value.length < 6)
					{
						checkFail = true;
						document.getElementById("pw2").className = "failed";
					}
					else
					{
						pw2 = f.elements[i].value;
						document.getElementById("pw2").className = "normal";
					}
				}
				break;
		}
	}	
	
	if (checkFail)
	{
		if (pw != "" && pw2 != "" && pw != pw2)
			window.alert('De twee ingevulde wachtwoorden komen niet overeen.');
		window.alert(msg);
		return false;
	}
	else if (pw != "" && pw2 != "" && pw != pw2)
	{
		window.alert('De twee ingevulde wachtwoorden komen niet overeen.');
		return false;
	}
}

function onInit()
{
	var highlight = _GET("highlight");
	if (highlight)
	{
		x = document.getElementById("content");
		highlightText(highlight, "highlighted", x);
	}
}

function onLoadForm(widget)
{
	widget.addEventListener("beforeSubmit", function()
	{
		document.getElementById('form').style.display="none";
		document.getElementById('done').style.display="inline";
	});
}

function showHide()
{
	document.getElementById('wachtwoordShow').style.display = 'block';
	document.loginForm.password.focus();
	document.getElementById('wachtwoordHide').style.display = 'none';
}

function nl2br(input)
{
	return input.replace(/\n/g,'<br>');
}

var activeElem;

function changeUserFilter(el, userID)
{
	el.style.background = "#ffffff";
	var elem = el.options[el.selectedIndex].value;
	
	activeElem = el;
	
	xajax.call("xajax_changeUserFilter", {parameters:[elem, userID], context: {
			callback: function(retval)
			{
				if (retval)
				{
					activeElem.style.background = "#9FFF9F";
				}
				else
				{
					activeElem.style.background = "#FF9F9F";
				}
			}
	}});
}

function orderNow()
{
	document.getElementById("buttonOrderNow").style.display = "none";
	document.getElementById("orderNowInfo").style.display = "block";
	post({action:'newOrder'})	
}
