var elems = new Array (
	new Array("salutation", 0, "text"),
	new Array("last_name", 0, "text"),
	new Array("email", 0, "mail"),
	new Array("street", "check_info_block", 0),
	new Array("zip_code", "check_info_block", "int"),
	new Array("city", "check_info_block",  "text"),
	new Array("country", "check_info_block", "text"),
	new Array("call_back_phone","check_call_back","phone"),
	new Array("event_phone", "check_event", "phone")
);

var error = 0;

function checkform(_this,lang)
{
	error = 0; 
	EnableAll();
	for (i = 0; i < elems.length; i++)
	{
		var err = 0;
		if (elems[i][1] == 0)
			var err = check(document.getElementById("input_" + elems[i][0]).value,elems[i][2])
		else
		{
			if(document.getElementById(elems[i][1]).checked == true)
				var err = check(document.getElementById("input_" + elems[i][0]).value, elems[i][2])
		}

		if (err)
		{
			document.getElementById("label_" + elems[i][0]).className = "err";
			error = 1;
		}
	}

	if (error)
	{
		if (lang == 'de')
			alert("Bitte füllen Sie alle rot markierten Felder aus!")
		else
			alert("Please fill out all fields marked in red!")
		return false;
	}
	else
		return true
	
	 
}

function check(e,type)
{
	var result;
	switch(type)
	{
		case "mail": result = checkEmail(e); break;  
		case "int": result = checkInt(e); break;
		case "phone": result = checkPhone(e); break;
		case "text": result = checkText(e); break;
		default: result = isEmpty(e); break;
	}

	return result;

}


function EnableAll()
{
	for (i = 0; i < elems.length; i++)
	{
		document.getElementById("label_" + elems[i][0]).className = "";
	}
}

function checkText (strng) 
{
	var error="";
	error = isEmpty(strng)

	var illegalChars=/[a-zA-ZüÜöÖäÄß\ ]+/;
	var result = strng.match(illegalChars)
	if (result != strng)
		error = 1
	return error;
}

function checkInt (strng) 
{
	var error="";
	error = isEmpty(strng)

	var illegalChars=/[0-9\ ]+/;
	var result = strng.match(illegalChars)
	if (result != strng)
		error = 1
	return error;
}



function checkEmail (strng) 
{
	var error="";
	error = isEmpty(strng)

	var emailFilter=/^.+@.+\..{2,3}$/;
	if (!(emailFilter.test(strng))) 
	{ 
		error = 1;
	}
	else 
	{
		//test email for illegal characters
		var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/
		if (strng.match(illegalChars)) 
		{
			error = 1;
		}
	}
	return error;    
}


// phone number - strip out delimiters and check for 10 digits

function checkPhone (strng) 
{
	var error = "";
	error = isEmpty(strng)

	var stripped = strng.replace(/[\(\)\.\-\ ]/g, ''); //strip out acceptable non-numeric characters
	
	if (isNaN(parseInt(stripped))) 
	{
		error = 1;
	}
	return error;
}

function isEmpty(strng) 
{
	var error = "";
	if (strng.length == 0) 
	{
		error = 1
	}
	return error;	  
}
