function formvalid(FormName)
{		
	var formpje = document.getElementById(FormName);
	var required = document.getElementById("required").value;
	var requiredArray = new Array();
	
	var requiredName = document.getElementById("requiredName").value;
	var requiredNameArray = new Array();
	
	var requiredType = document.getElementById("requiredType").value;
	var requiredTypeArray = new Array();
	
	var error = "";
	
	requiredArray = required.split(", ");
	requiredNameArray = requiredName.split(", ");
	requiredTypeArray = requiredName.split(", ");
	
	for (i=0;i<requiredArray.length;i++)
	{
		var tempValue = new String( document.getElementById(requiredArray[i]).value );
		var tempName = new String( requiredArray[i] );
		var tempType = new String( requiredArray[i] );
		
		switch (document.getElementById(requiredArray[i]).type)
		{
			case "select-one":
			{
				if (tempValue == 0)
				{
					if (this.checkSelectOne(tempValue)){} else
					{
						error = error + i + ",";
					}
				}
				break;	
			}
			case "text":
			{
				/*if (tempName.search("email") != -1)
				{			
					if (this.checkEmail(tempValue)){} else
					{
						error = error + i + ",";
					}
				} else if (tempName.search("postal") != -1)
				{
					if (this.checkPostCode(tempValue)){} else
					{
						error = error + i + ",";
					}
				} else if (tempName.search("date") != -1)
				{
					if (this.checkDate(tempValue)){} else
					{
						error = error + i + ",";
					}
				} 
				else
				{
					if (this.checkEmpty(tempValue)){} else
					{
						error = error + i + ",";
					}
				}*/
				
				if (tempType.search("email") != -1)
				{			
					if (this.checkEmail(tempValue)){} else
					{
						error = error + i + ",";
					}
				} else if (tempType.search("postal") != -1)
				{
					if (this.checkPostCode(tempValue)){} else
					{
						error = error + i + ",";
					}
				} else if (tempType.search("date") != -1)
				{
					if (this.checkDate(tempValue)){} else
					{
						error = error + i + ",";
					}
				} 
				else
				{
					if (this.checkEmpty(tempValue)){} else
					{
						error = error + i + ",";
					}
				}
				break;	
			}
		
			case "password":
			{
				if (tempName.search("email") != -1)
				{
				} 
				else
				{
					if (this.checkEmpty(tempValue)){} else
					{
						error = error + i + ",";
					}
				}			
				break;	
			}
		}

	}
	
	if (this.noError(error, requiredNameArray))
	{
		document.getElementById(FormName).submit();
		
	}
}

function noError(errorString, requiredNameArray)
{
	var errorArray = new Array();
	var errorAlert= "De volgende velden moeten verplicht en juist ingevoerd worden:\n\r\n\r";
	
	if (errorString != "")
	{
		errorArray = errorString.split(",");
		
		for (j=0;j<errorArray.length;j++)
		{
			if (errorArray[j] != "")
			{
				errorAlert += "- " + requiredNameArray[errorArray[j]] + "\n\r";
			}
		}
		
		alert (errorAlert);
		return false;
	} else
	{
		return true;
	}
}

function checkSelectOne(data)
{
	if (data != 0)
	{
		return true;		
	} else
	{
		return false;
	}
}

function checkEmpty(data)
{
	if (data != "")
	{
		return true;		
	} else
	{
		return false;
	}
}

function checkEmail(email)
{
	if(email.length <= 0)
	{
	  return false;
	}
    var splitted = email.match("^(.+)@(.+)$");
    if(splitted == null) return false;
    if(splitted[1] != null )
    {
      var regexp_user=/^\"?[\w-_\.]*\"?$/;
      if(splitted[1].match(regexp_user) == null) return false;
    }
    if(splitted[2] != null)
    {
      var regexp_domain=/^[\w-\.]*\.[A-Za-z]{2,4}$/;
      if(splitted[2].match(regexp_domain) == null) 
      {
	    var regexp_ip =/^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/;
	    if(splitted[2].match(regexp_ip) == null) return false;
      }
      return true;
    }
	return false;
}

function checkPostCode(postcode)
{	
	var regexp_postal1 = /^\d{4}[A-Za-z]{2}$/;
	var regexp_postal2 = /^\d{4}\s[A-Za-z]{2}$/;
	
	if(postcode.length <= 0)
	{
		return false;
	}
	
	if (postcode.match(regexp_postal1) == null)
	{
		if (postcode.match(regexp_postal2) == null)
		{
			return false	
		}  else
		{
			return true;
		}
	} else
	{
		return true;
	}
}

function checkDate(datum)
{	
	var regexp_date = /^\d{2}\S\d{2}\S\d{4}$/;
	
	if(datum.length <= 0)
	{
		return false;
	}
	
	if (datum.match(regexp_date))
	{
		return true;
	} else
	{
		return false;
	}
}

function tryPrint(){
    var a = window.open('','','width=500,height=300');
    a.document.open("text/html");
    a.document.write(document.getElementById('content').innerHTML);
    a.print();
    a.document.close();
}
