function visfejl(inputelement) {
	inputelement.style.background = '#CD4035';
	inputelement.style.color = '#fff';
	required(inputelement);
}
function skjulfejl(inputelement) {
	inputelement.style.background = '';
	inputelement.style.color = '';
}
function required(inputelement)
{
	inputelement.style.borderColor = '#CD4035';
}
function optional(inputelement)
{
	inputelement.style.borderColor = '#ADCD35';
}

// Events
function addChangeEvent(func, elem) {
	var oldonchange = elem.onchange;
	var oldonfocus = elem.onfocus;
	var oldonblur = elem.onblur;
	if (typeof elem.onchange != 'function') {
		elem.onchange = func;
	} else {
		elem.onchange = function() {
			if (oldonchange) {
				oldonchange();
			}
			func();
		}
	}
	if (typeof elem.onfocus != 'function') {
		elem.onfocus = func;
	} else {
		elem.onfocus = function() {
			if (oldonfocus) {
				oldonfocus();
			}
			func();
		}
	}
	if (typeof elem.onblur != 'function') {
		elem.onblur = func;
	} else {
		elem.onblur = function() {
			if (oldonblur) {
				oldonblur();
			}
			func();
		}
	}
}

function addOnlyChangeEvent(func, elem) {
	var oldonchange = elem.onchange;
	if (typeof elem.onchange != 'function') {
		elem.onchange = func;
	} else {
		elem.onchange = function() {
			if (oldonchange) {
				oldonchange();
			}
			func();
		}
	}
}


function addKeyupEvent(func, elem) {
	var oldonkeyup = elem.onkeyup;
	if (typeof elem.onkeyup != 'function') {
		elem.onkeyup = func;
	} else {
		elem.onkeyup = function() {
			if (oldonkeyup) {
				oldonkeyup();
			}
			func();
		}
	}
}

function addLoadEvent(func) {
	var oldonload = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;
	} else {
		window.onload = function() {
			if (oldonload) {
				oldonload();
			}
			func();
		}
	}
}

function addUnloadEvent(func) {
	var oldonunload = window.onunload;
	if (typeof window.onunload != 'function') {
		window.onunload = func;
	} else {
		window.onunload = function() {
			if (oldonunload) {
				oldonunload();
			}
			func();
		}
	}
}


// Validering
function validertekstfelt(inputelement)
{
	if (inputelement.value.length <= 0)
	{
		required(inputelement);
		return false;
	}
	else
	{
		skjulfejl(inputelement);
		optional(inputelement);
		return true;
	}
}

function validerselectbox(inputelement)
{
	if (inputelement.options[inputelement.selectedIndex].value.length <= 0 || inputelement.options[inputelement.selectedIndex].value == 0)
	{
		required(inputelement);
		return false;
	}
	else
	{
		skjulfejl(inputelement);
		optional(inputelement);
		return true;
	}
}

function validerEmail(inputelement)
{
	var atCount = 0;
	var offset = 1;
	while (offset < (inputelement.value.length - 4) && inputelement.value.indexOf('@', offset) >= 0)
	{
		offset = inputelement.value.indexOf('@', offset) + 1;
		atCount++;
	}
	if (inputelement.value.length < 6 || inputelement.value.indexOf('@') < 1 || inputelement.value.indexOf('.') < 0 || atCount < 1)
	{
		required(inputelement);
		return false;
	}
	var pieces = inputelement.value.split('@');
	if (pieces[0].length < 1 || pieces[1].length < 4 || pieces[1].indexOf('.') < 1)
	{
		required(inputelement);
		return false;
	}
	var pieces = pieces[1].split('.');
	if (pieces[0].length < 1 || pieces[(pieces.length - 1)].length < 2)
	{
		required(inputelement);
		return false;
	}

	skjulfejl(inputelement);
	optional(inputelement);
	return true;
}

function validerEAN(inputelement, isNotRequired)
{
	inputelement.value = inputelement.value.replace(/[^0-9]/, '');
	if (inputelement.value.length != 13)
	{
		if (isNotRequired && inputelement.value.length <= 0)
		{
			skjulfejl(inputelement);
			optional(inputelement);
			return true;			
		}	
		required(inputelement);
		return false;
	}
	else
	{
		var sum = 0;
		var faktor = 3;
		for (i = 12; i > 0; i--)
		{
			sum += inputelement.value.substring(i - 1, i) * faktor
			faktor = 4 - faktor;
		}
		var k = (1000 - sum) % 10;
		if (inputelement.value.substring(12, 13) == k)
		{
			skjulfejl(inputelement);
			optional(inputelement);
			return true;
		}
		else
		{
			required(inputelement);
			return false;
		}
	}
}

