var password = "";
var errtxt = "";
var validlanguage; // DK = 0
var validnow = false;
var validerror;

function mmerr(lang, txt) {
	var err = new Array(2);
	err[0] = new Array(" - skal være mindst ", " - må max være ", " tegn");
	err[1] = new Array(" - has to be at least ", " - can at most be ", " characters");

	return err[lang][txt];
}

function tterr(lang, txt) {
	var err = new Array(2);
	err[0] = new Array("<strong>Der var en fejl:</strong>",
						 " - indtast korrekt e-mail adresse",
						 " - indtast et valid nummer",
						 " - indtast et valid telefonnummer",
						 " - udfyld feltet",
						 " - indtast et valid URL",
						 "Passwords er ikke ens!",
						 " - Skal være mindst 6 tegn og kun A-z 0-9 tegn må bruges",
						 " - e-mail adresse skal udfyldes når du tilvælger nyhedsbrev");

	err[1] = new Array("Some fields are not correctly filled out. - please correct it",
						 " - Please enter a valid email address",
						 " - Please enter a valid number",
						 " - Please enter a valid phone number",
						 " - Please fill out the field",
						 " - Please enter a valid URL",
 						 "Passwords does not match!",
						 " - has to be at least 6 and only A-z 0-9 characters",
						 " - Please enter an email address when newsletter is selected");
	return err[lang][txt];
}

function valid(felt, valid) {
	if (!validate(felt, valid)) {
		validerror = false;
	}

	return true;
}

function validate(felt, valid) {
	var field = felt.value;
	var RegE = "";
	var errmsg = "";

	if (errtxt == null) {
		errtxt = ""; // Netscape bug
		password = "";
		validnow = false;
	}

	if (validnow == false || validnow == null) return true;

	var Varr = valid.split(",");

	Varr[0] = Varr[0].toLowerCase();
	if (field.length == 0 && parseInt(Varr[1]) == 0)
		return true;

	if (Varr[0] == "email" && field.length == 0) 
	{
		var subject = document.getElementsByName('subject_id');
		for(var i = 0; i < subject.length; i++)
		{
			if(subject[i].checked)
				errmsg += Varr[3] + tterr(validlanguage, 8) + "<br/>";
		}
	}
	else if ((field.length < parseInt(Varr[1])) && (parseInt(Varr[1]) > 0))
		errmsg += Varr[3] + mmerr(validlanguage, 0) + Varr[1] + mmerr(validlanguage, 2) + "<br/>";
	else if ((field.length > parseInt(Varr[2])) && (parseInt(Varr[2]) > 0))
		errmsg += Varr[3] + mmerr(validlanguage, 1) + Varr[2] + mmerr(validlanguage, 2) + "<br/>";

	if (errmsg != "") {
		errtxt += errmsg;
		return false;
	}

	if (Varr[0] == "email" && field.length > 0) {
		errmsg = Varr[3] + tterr(validlanguage, 1) + "<br/>";
		RegE = "^ *[-a-zA-Z0-9_\.]+@[-a-zA-Z0-9_]+\\.[-a-zA-Z0-9_\.]+$";

		var maildk = field.split(".");
		var rx = new RegExp("^[a-zA-Z][a-zA-Z][a-zA-Z]?$"); // Kontrol af top level domain
		if (rx.exec(maildk[maildk.length - 1]) == null) {
			errtxt += errmsg;
			return false;  // fejl
		}
	}

	if (Varr[0] == "number") {
		errmsg = Varr[3] + tterr(validlanguage, 2) + "<br/>";

		if (validlanguage == 0) RegE = "^ *-?[0-9]*,?[0-9]*$";
		else if (validlanguage == 1) RegE = "^ *-?[0-9]*.?[0-9]*$";
	}

	if (Varr[0] == "phone") {
		errmsg = Varr[3] + tterr(validlanguage, 3) + "<br/>";
		RegE = "^[-+#()0-9 ]+$";

	}
	if (Varr[0] == "text") {
		errmsg = Varr[3] + tterr(validlanguage, 4) + "<br/>";
		// RegE = "^.+$";
		return true;
	}

	if (Varr[0] == "url") {
		errmsg = Varr[3] + tterr(validlanguage, 5) + "<br/>";

		RegE = "^ *.+$";
		var urldk = field.split(".");
		var rx = new RegExp("^[a-zA-Z][a-zA-Z][a-zA-Z]?(/.*)* *$"); // Kontrol af top level domain
		if (rx.exec(urldk[urldk.length - 1]) == null) {
			errtxt += errmsg;
			return false;  // ok
		}
	}

	if (Varr[0] == "password") {
		if (password.length != 0) {
			if (password != field) {
				errtxt += tterr(validlanguage, 6) + "<br/>";
				password = "";
				return false;
			}
		}
		else
			password = field;

		errmsg = Varr[3] + tterr(validlanguage, 7) + "<br/>";
		RegE = "^[a-zA-Z0-9]{6,}$";
	}

	var rx = new RegExp(RegE);
	if (rx.exec(field) != null)
		return true;

	errtxt += errmsg;
	return false;
}

function showerror() {
	var msg = "";

	msg = tterr(validlanguage, 0) + "<br/>" + errtxt;

	//alert(msg);
	errtxt = "";
	return msg
}

function checkform(frm, errorDiv) {
	with (frm) {
		validlanguage = 0; // DK = 0 , UK = 1
		validerror = true;
		validnow = true;

		for (var i = 0; i < frm.elements.length; i++)
			if (frm.elements[i].onchange != null && frm.elements[i].name != "Medlemstype")
				frm.elements[i].onchange();

		validnow = false;

		if (validerror == false) {
			document.getElementById(errorDiv).innerHTML = showerror();
			document.getElementById('error-msg').style.display = "block";
		}

		return validerror;
	}
}
    

