<!--
function testForm(formToTest, element){ 
var err = "";
var varde;
var rubrikNamn;
var elementNamn;
var validTyp;
var returString;

	for(var i=0; i < element.length; i++){
		varde = "";
		rubrikNamn = element[i][0];
		elementNamn = element[i][1];
		validTyp = element[i][2];
		returString = (element[i].length > 3)?("*"+element[i][3].replace(/\[rubrik\]/gi,rubrikNamn)+"\n"):null;
		
		if(formToTest.elements[elementNamn] == null){
			err += '\'' + elementNamn + '\' finns inte i formuläret!\n';
			continue;
		}

		if(formToTest.elements[elementNamn].length){
			for(var n=0;n < formToTest.elements[elementNamn].length;n++){
				if(formToTest.elements[elementNamn][n].type=="text" && !formToTest.elements[elementNamn][n].disabled){
					varde += formToTest.elements[elementNamn][n].value;
				}else if((formToTest.elements[elementNamn].type=="select-one" || formToTest.elements[elementNamn].type=="select-multiple") && !formToTest.elements[elementNamn].disabled && formToTest.elements[elementNamn][n].selected){
					varde += formToTest.elements[elementNamn][n].value;
				}else if((formToTest.elements[elementNamn][n].type=="select-one" || formToTest.elements[elementNamn][n].type=="select-multiple") && !formToTest.elements[elementNamn][n].disabled){
					if(formToTest.elements[elementNamn][n].options.length){
						for(var ii=0; ii < formToTest.elements[elementNamn][n].options.length; ii++){
							if(formToTest.elements[elementNamn][n].options[ii].selected){
								varde += formToTest.elements[elementNamn][n].options[ii].value;
							}
						}
					}else{
						varde += formToTest.elements[elementNamn][n].value;
					}
				}else if(formToTest.elements[elementNamn][n].checked==true && !formToTest.elements[elementNamn][n].disabled){
					varde += formToTest.elements[elementNamn][n].value;
				}
			}
		}else{
			if((formToTest.elements[elementNamn].type=="checkbox" || formToTest.elements[elementNamn].type=="radio") && !formToTest.elements[elementNamn].disabled){
				if(formToTest.elements[elementNamn].checked){
					varde = formToTest.elements[elementNamn].value;
				}
			}else if(!formToTest.elements[elementNamn].disabled){
				varde = formToTest.elements[elementNamn].value;
			}
		}

		if(validTyp.exec){
			if(!(varde.match(validTyp) != null || varde.length == 0)){
				err += returString;
			}
		}else if(validTyp == 'notNull'){
			if(!validateNotNull(varde)){
				err += (returString)?returString:'*Fältet \'' + rubrikNamn + '\' får inte vara tomt\n';
			}
		}else if(validTyp == 'nummer'){
			if(!validateNumber(varde)){
				err += (returString)?returString:'*Fältet \'' + rubrikNamn + '\' får endast bestå av siffror\n';
			}
		}else if(validTyp == 'heltal'){
			if(!validateHeltal(varde)){
				err += (returString)?returString:'*Fältet \'' + rubrikNamn + '\' får endast bestå av siffror\n';
			}
		}else if(validTyp == 'bit'){
			if(!validateBit(varde)){
				err += (returString)?returString:'*Fältet \'' + rubrikNamn + '\' får endast bestå av siffran 1 eller 0\n';
			}
		}else if(validTyp == 'telnummer'){
			if(!validateTelNumber(varde)){
				err += (returString)?returString:'*Fältet \'' + rubrikNamn + '\' innehåller inte ett giltigt telefonnummer ex. +46 (0) 8-111 111 11\n';
			}
		}else if(validTyp == 'epost'){
			if(!validateEmail(varde)){
				err += (returString)?returString:'*Fältet \'' + rubrikNamn + '\' innehåller inte en korrekt E-postadress\n' ;
			}
		}else if(validTyp == 'datum'){
			if(!validateDate(varde)){
				err += (returString)?returString:'*Fältet \'' + rubrikNamn + '\' innehåller inte ett giltigt datum [åååå-mm-dd]\n';
			}
		}else if(validTyp == 'datumtid'){
			if(!validateDateTime(varde)){
				err += (returString)?returString:'*Fältet \'' + rubrikNamn + '\' innehåller inte ett giltigt datum [åååå-mm-dd hh:mm]\n';
			}
		}else if(validTyp.substr(0,6) == 'langd='){
			langd = validTyp.substring(validTyp.indexOf("=")+1,validTyp.length);
			if(!validateLength(varde,langd)){
				err += (returString)?returString:'*Fältet \''+ rubrikNamn +'\' måste bestå av '+ langd +' tecken\n';
			}
		}else if(validTyp.substr(0,9) == 'maxlangd='){
			langd = validTyp.substring(validTyp.indexOf("=")+1,validTyp.length);
			if(!validateMaxLength(varde,langd)){
				err += (returString)?returString:'*Fältet \''+ rubrikNamn +'\' får inte bestå av fler än '+ langd +' tecken\n';
			}
		}else if(validTyp.substr(0,9) == 'minlangd='){
			langd = validTyp.substring(validTyp.indexOf("=")+1,validTyp.length);
			if(!validateMinLength(varde,langd)){
				err += (returString)?returString:'*Fältet \''+ rubrikNamn +'\' får inte bestå av färre än '+ langd +' tecken\n';
			}
		}else if(validTyp.substr(0,7) == 'minnum='){
			langd = validTyp.substring(validTyp.indexOf("=")+1,validTyp.length);
			if(!validateMinNum(varde,langd)){
				err += (returString)?returString:'*Fältet \''+ rubrikNamn +'\' får inte innehålla värden under '+ langd +'\n';
			}
		}else if(validTyp.substr(0,7) == 'maxnum='){
			langd = validTyp.substring(validTyp.indexOf("=")+1,validTyp.length);
			if(!validateMaxNum(varde,langd)){
				err += (returString)?returString:'*Fältet \''+ rubrikNamn +'\' får inte innehålla värden över '+ langd +'\n';
			}
		}else if(validTyp.substr(0,8) == 'mindate='){
			langd = validTyp.substring(validTyp.indexOf("=")+1,validTyp.length);
			if(!validateMinDate(varde,langd)){
				err += (returString)?returString:'*Fältet \''+ rubrikNamn +'\' får inte innehålla datum innan '+ langd +'\n';
			}
		}else if(validTyp.substr(0,8) == 'maxdate='){
			langd = validTyp.substring(validTyp.indexOf("=")+1,validTyp.length);
			if(!validateMaxDate(varde,langd)){
				err += (returString)?returString:'*Fältet \''+ rubrikNamn +'\' får inte innehålla datum efter '+ langd +'\n';
			}
		}else if(validTyp == 'idnummer'){
			if(!validateIdNum(varde)){
				err += (returString)?returString:'*Fältet \'' + rubrikNamn + '\' innehåller inte ett giltigt id-nummer [xxxxxx-xxxx]\n';
			}
		}else{
			err += '*\'' + validTyp + '\' är inte en giltig valideringsmetod\n';
		}
	}

	if (err != ''){
		alert(err);
	}
	return (err == '');
}

function validateNotNull(str){
	return (str.length > 0)
}

function validateLength(str,langd){
	return (str.length == langd || str.length == 0)
}

function validateMaxLength(str,langd){
	return (str.length <= langd)
}

function validateMinLength(str,langd){
	return (str.length >= langd)
}

function validateMinNum(str, minNum){
	return validateInt(str)?(Number(str) >= minNum || str.length==0):false;
}

function validateMaxNum(str, maxNum){
	return validateInt(str)?(Number(str) <= maxNum || str.length==0):false;
}

function validateInt(str){
	return (Number(str) || str.length==0);
}

function validateNumber(str){
	var numPat = /^-?(\d+((\.|,)?))*(\d+)$/
	var tmp = str.match(numPat);
	return(tmp != null || str.length == 0);
}

function validateHeltal(str){
	var numPat = /^(\d+)$/
	var tmp = str.match(numPat);
	return(tmp != null || str.length == 0);
}

function validateBit(str){
	str += ""; 
	var numPat = /^([0-1]){1}$/
	var tmp = str.match(numPat);
	return(tmp != null || str.length == 0);
}

function validateTelNumber(str){
//	var numPat = /^((\+){1}(\d){1,4}(\s){1}((\(){1}(\d){1}(\)){1}(\s)?)?)?(\d+)((\s|-){1}\d+)*$/
	var numPat = /^((\+){1}(\d){1,4}(\s)?((\(){1}(\d){1}(\)){1}(\s)?)?)?(\d+)((\s|\s?-\s?){1}\d+)*$/
	var tmp = str.match(numPat);
	return (tmp != null || str.length == 0);
}

function validateEmail(emailStr){
	var emPat = /^[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)*@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/
	var tmp = emailStr.match(emPat);
	return (tmp != null || emailStr.length == 0);
}

function validateMinDate(varde, minDate){
	if(varde.length==0 || minDate.length==0){
		return true;
	}else if(!( (validateDate(varde) || validateDateTime(varde)) && (validateDate(minDate) || validateDateTime(minDate)) )){
		return false;
	}
	
	return ((new Date(varde.replace(/-/g,'/'))) >= (new Date(minDate.replace(/-/g,'/'))));
}

function validateMaxDate(varde, maxDate){
	if(varde.length==0 || maxDate.length==0){
		return true;
	}else if(!( (validateDate(varde) || validateDateTime(varde)) && (validateDate(maxDate) || validateDateTime(maxDate)) )){
		return false;
	}

	return ((new Date(varde.replace(/-/g,'/'))) <= (new Date(maxDate.replace(/-/g,'/'))));
}

function validateDate(datum){
	if (datum.length == 0){return true;}
	
	var datPat = /^(\d{4})([-])(\d{2})(\2)(\d{2})$/
	var mArray = datum.match(datPat);

	if (mArray == null){
		return false;
	}else{
		var day = mArray[5]
		var month = mArray[3]
		var year = mArray[1]

		if(day < 1 || day > 31 || month < 1 || month > 12){return false;}
		if((month == 4 || month == 6 || month == 9 || month == 11) && day > 30){return false;}
		if(month == 2){
			var skott = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)); 
			if(day > 29 || (day > 28 && !skott)){return false;}
		}
		return true;
	}
}

function validateKlocka(klocka){
	var clockPat = /^(([0-1][0-9])|([2][0-3]))(\:)([0-5][0-9])(\:[0-5][0-9](\.\d{3})?)?$/
	tmp = klocka.match(clockPat);
	return (tmp != null || klocka.length == 0);
}

function validateDateTime(longDate){
	if(longDate.length == 0){return true;}
	var datArr = longDate.split(' ');
	if(datArr.length != 2){return false;}
	var test1 = validateDate(datArr[0]);
	var test2 = validateKlocka(datArr[1]);
	return (test1 && test2);
}

function validateIdNum(idNum){
	if(idNum.length == 0){return true;}
	var numPat = /(\d{6})-?\d{4}/
	var numArr = idNum.match(numPat);

	if(numArr == null){return false}
	
	var tmp = idNum.replace('-','');
	
	var sum 	= 0;
	var totSum 	= 0;
	for(var i=0; i < tmp.length-1; i++){
		sum = parseInt(tmp.substr(i,1));
		if((i % 2)==0) {
			sum = (parseInt(tmp.substr(i,1))*2)
			if(sum.toString().length>1){
				sum = parseInt(sum.toString().substr(0,1))+parseInt(sum.toString().substr(1,1))
			}
		}
		totSum += sum;
	}
	
	var chksiffra = totSum.toString().substr(totSum.toString().length-1);
	if(parseInt(chksiffra) > 0){
		chksiffra = 10-parseInt(chksiffra);
	}
	
	return (chksiffra==parseInt(tmp.substr(tmp.length-1)));
}
//------------- Slut formulärvalidering-----------------
//-->