// Function to loop 
function validateForm(form) {
	var i;
	var formElements = form.elements;
	var valid;
	var noDigit;
	
	// Pattern variables
	var required = "-r";
	var string = "_str";
	var name = "_name";
	var text = "_txt";
	var integer = "_int";
	var integerPos = "_intPos";
	var phone = "_phone";
	var email = "_email";
	var zip = "_zip";
	var date = "_date";

	// Regexps
	var reg_string = /^[a-zA-ZåäöÅÄÖ]*$/;

// Fixa så att name kan vara ett namn med
	var reg_name = /^([a-zA-ZåäöÅÄÖ]{2,})((-|\s)([a-zA-ZåäöÅÄÖ]{2,}(-|\s))*[a-zA-ZåäöÅÄÖ]{2,})?$/;
	var reg_intPos = /^\d+$/;
//	var reg_date = /^20\d{2}-\d{2}-\d{2}$/;
	var reg_date = /^(20\d{2}-(0[1-9]{1}|1[0-2]{1})-(0[1-9]{1}|1[0-9]{1}|2[0-9]{1}|3[0-1]{1}))$/;  
	var reg_phone = /^0[\d]{1,3}-([\d]{5,8})$/;
//	var reg_phone = /^[0|+]{1}[\d]{2,3}-([\d]{5,8})$/;    // Försök att få till ett plus
	
	var reg_email = /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/;
	var reg_zip = /^\d{3}[ ]?\d{2}$/;

	
	//Messages
	var no_required = "Du måste fylla i alla obligatoriska fält.";
	var wrong_format = "Du har angivigt felaktig information. Kontrollera markerade fält.";

	valid = true;
	for (i=0; i<formElements.length; i++) {
		if (formElements[i].type == "text") {

			if (formElements[i].name.indexOf(required) != -1 && (formElements[i].value == "" || formElements[i].value == null)) {
				alert(no_required);
				valid = false;
				break;

			} else if (formElements[i].value != "" && formElements[i].value != null) {
				// Kolla Sträng variabler (_str)
				if (formElements[i].name.indexOf(string) != -1) {
					if(!reg_string.test(formElements[i].value)) {
						if (valid) {
							alert(wrong_format);
						}
						formElements[i].style.color = "#FFFFFF";
						formElements[i].style.backgroundColor = "#D50A0A";

						valid = false;

					} else {
						formElements[i].style.color = "#000000";
						formElements[i].style.backgroundColor = "#FFFFFF";
					}
				}

				// Kolla namn variabler (_name)
				 if (formElements[i].name.indexOf(name) != -1) {
					if(!reg_name.test(formElements[i].value)) {
						if (valid) {
							alert(wrong_format);
						}
						formElements[i].style.color = "#FFFFFF";
						formElements[i].style.backgroundColor = "#D50A0A";

						valid = false;

					} else {
						formElements[i].style.color = "#000000";
						formElements[i].style.backgroundColor = "#FFFFFF";
					}
				}
				
				// Kolla positiva Integer variabler variabler (_intPos)
				 if (formElements[i].name.indexOf(integerPos) != -1) {

					if(!reg_intPos.test(formElements[i].value)) {
						if (valid) {
							alert(wrong_format);
						}
						formElements[i].style.color = "#FFFFFF";
						formElements[i].style.backgroundColor = "#D50A0A";

						valid = false;

					} else {
						formElements[i].style.color = "#000000";
						formElements[i].style.backgroundColor = "#FFFFFF";
					}

				} // slut Pos integer

				// Kolla datum variabler variabler (_date)
				 if (formElements[i].name.indexOf(date) != -1) {

					if(!reg_date.test(formElements[i].value)) {
						if (valid) {
							alert(wrong_format);
						}
						formElements[i].style.color = "#FFFFFF";
						formElements[i].style.backgroundColor = "#D50A0A";

						valid = false;

					} else {
						formElements[i].style.color = "#000000";
						formElements[i].style.backgroundColor = "#FFFFFF";
					}

				} // slut Datum
				
				// Kolla telefon variabler variabler (_phone)
				 if (formElements[i].name.indexOf(phone) != -1) {

					if(!reg_phone.test(formElements[i].value)) {
						if (valid) {
							alert(wrong_format);
						}
						formElements[i].style.color = "#FFFFFF";
						formElements[i].style.backgroundColor = "#D50A0A";

						valid = false;

					} else {
						formElements[i].style.color = "#000000";
						formElements[i].style.backgroundColor = "#FFFFFF";
					}

				} // slut Telefon
				
				// Kolla e-post variabler(_email)
				 if (formElements[i].name.indexOf(email) != -1) {

					if(!reg_email.test(formElements[i].value)) {
						if (valid) {
							alert(wrong_format);
						}
						formElements[i].style.color = "#FFFFFF";
						formElements[i].style.backgroundColor = "#D50A0A";

						valid = false;

					} else {
						formElements[i].style.color = "#000000";
						formElements[i].style.backgroundColor = "#FFFFFF";
					}

				} // slut E-post
				
				// Kolla postnummer variabler (_zip)
				 if (formElements[i].name.indexOf(zip) != -1) {

					if(!reg_zip.test(formElements[i].value)) {
						if (valid) {
							alert(wrong_format);
						}
						formElements[i].style.color = "#FFFFFF";
						formElements[i].style.backgroundColor = "#D50A0A";

						valid = false;

					} else {
						formElements[i].style.color = "#000000";
						formElements[i].style.backgroundColor = "#FFFFFF";
					}

				} // slut postnummer

			} else { // Ej tomt fält

				formElements[i].style.color = "#000000";
				formElements[i].style.backgroundColor = "#FFFFFF";
			}

		 } else if (formElements[i].type == "checkbox") {
			if (formElements[i].checked) {
				//return true;
				break;
			}
		} 
		
	}
	if (valid) {
		return true;
	} else {
		return false;
	}
}

