/**
 * @projectDescription co2 neutraal
 * @author JDE
 * @version 0.1
 */

// Initial loads

function init()
{
	if(document.getElementById('form1')) setForm1(document.getElementById('form1'));
	if(document.getElementById('form2')) setForm2(document.getElementById('form2'));
}

// validate form1 (index.php)

function setForm1(form)
{
	setNumericInput('kwh');
	setNumericInput('aardgas');
	setNumericInput('verbruik');
	setNumericInput('km');
	
	function setNumericInput(value)
	{
		if(document.getElementById(value)) document.getElementById(value).onkeydown = isNumeric;
	}
}

// validate form2 (bereken.php)

function setForm2(form)
{
	if(document.getElementById('email')) document.getElementById('email').onchange = isEmail;
	document.getElementById('form2').onsubmit = function()
	{
		if(
			(document.getElementById('email').value == '' || !isEmail(document.getElementById('email'))) ||
			document.getElementById('naam').value == '' ||
			document.getElementById('adres').value == '' ||
			document.getElementById('telefoon').value == ''
		)
		{
			alert("Er is een fout opgetreden.\nControleer of u alle velden heeft ingevuld en of het e-mailadres geldig is.");
			return false;
		}
		
	}
}

/*
	Common validation functions
*/ 

var keynum;
var keychar;
var numcheck;

// Exceptions of keys (in keycode) which are allowed to work in strict inputfields (isNumeric, isTxt)
var exceptions = new Array();
exceptions[0] = 9;     // tab
exceptions[1] = 8;     // backspace
exceptions[2] = 17;    // ctrl
exceptions[3] = 18;    // alt
exceptions[4] = 33     // page up
exceptions[5] = 34     // page down
exceptions[6] = 35     // end
exceptions[7] = 36;    // home
exceptions[8] = 37;    // left
exceptions[9] = 38;    // up
exceptions[10] = 39;   // richt
exceptions[11] = 40;   // down
exceptions[12] = 46;   // del
exceptions[13] = 115;  // F5 (refresh)

function isException(obj)
{
    for(i=0; i<exceptions.length; i++)
    {
        if(exceptions[i]==obj) return true
    }
    return false;
}
    
function toUpperCase(obj)
{
    obj.value = obj.value.toUpperCase();
}
    
function isNumeric(e)
{
    if(window.event)
    {
        keynum = e.keyCode;
    }
    else if(e.which)
    {
        keynum = e.which;
    }
    if (isException(keynum) || (keynum>=96 && keynum<=105)) return true;
    keychar = String.fromCharCode(keynum);
    numcheck = /\d/;
    return numcheck.test(keychar);
}

function isTxt(e)
{
    if(window.event)
    {
        keynum = e.keyCode;
    }
    else if(e.which)
    {
        keynum = e.which;
    }
    if (isException(keynum)) return true;
    keychar = String.fromCharCode(keynum);
    numcheck = /\d/;
    return !numcheck.test(keychar);
}

function isEmail(obj)
{
    apos=obj.value.indexOf("@")
    dotpos=obj.value.lastIndexOf(".")
    if (apos<1||dotpos-apos<2)
	{
		//setError(this);
		return false;
	}
    else
	{
		//resetError(this);
		return true;
	}
}

// start javascript

if(window.addEventListener)
	window.addEventListener("load", init, false);
else if (window.attachEvent)
	window.attachEvent("onload", init);
else
	window.onload=init;