/* EventHandlers */
function addEvent(type, listener, object)
{
	if(typeof(object) == "undefined")
	{
		object = window;
	}
	
	if(typeof(listener) == "string")
	{
		listener = new Function(listener);
	}
	
	if(object.addEventListener)
	{
		object.addEventListener(type, listener, false);
	}
	else
	{
		object.attachEvent("on" + type, listener);
	}
}

function removeEvent(type, listener, object)
{
	if(typeof(object) == "undefined")
	{
		object = window;
	}
	
	if(typeof(listener) == "string")
	{
		listener = new Function(listener);
	}
	
	if(object.removeEventListener)
	{
		object.removeEventListener(type, listener, false);
	}
	else
	{
		object.detachEvent("on" + type, listener);
	}
}

/* Copy PostAddress <-> VisitAddress */
function copyAddress(type)
{
	var visitAddressStreet = document.getElementById("VisitAddressStreet");
	var visitAddressHouseNumber = document.getElementById("VisitAddressHouseNumber");
	var visitAddressZipCode = document.getElementById("VisitAddressZipCode");
	var visitAddressCity = document.getElementById("VisitAddressCity");
	var visitAddressCountryId = document.getElementById("VisitAddressCountryId");
	
	var postAddressStreet = document.getElementById("PostAddressStreet");
	var postAddressHouseNumber = document.getElementById("PostAddressHouseNumber");
	var postAddressZipCode = document.getElementById("PostAddressZipCode");
	var postAddressCity = document.getElementById("PostAddressCity");
	var postAddressCountryId = document.getElementById("PostAddressCountryId");
	
	var sourceStreet;
	var sourceHouseNumber;
	var sourceZipCode;
	var sourceCity;
	var sourceCountryId;
	
	var targetStreet;
	var targetHouseNumber;
	var targetZipCode;
	var targetCity;
	var targetCountryId;
	
	switch (type)
	{
		case "Visit":
			sourceStreet = visitAddressStreet;
			sourceHouseNumber = visitAddressHouseNumber;
			sourceZipCode = visitAddressZipCode;
			sourceCity = visitAddressCity;
			sourceCountryId = visitAddressCountryId;
			
			targetStreet = postAddressStreet;
			targetHouseNumber = postAddressHouseNumber;
			targetZipCode = postAddressZipCode;
			targetCity = postAddressCity;
			targetCountryId = postAddressCountryId;
			break;
		
		case "Post":
			sourceStreet = postAddressStreet;
			sourceHouseNumber = postAddressHouseNumber;
			sourceZipCode = postAddressZipCode;
			sourceCity = postAddressCity;
			sourceCountryId = postAddressCountryId;
			
			targetStreet = visitAddressStreet;
			targetHouseNumber = visitAddressHouseNumber;
			targetZipCode = visitAddressZipCode;
			targetCity = visitAddressCity;
			targetCountryId = visitAddressCountryId;
			break;
	}

	targetStreet.value = sourceStreet.value;
	targetHouseNumber.value = sourceHouseNumber.value;
	targetZipCode.value = sourceZipCode.value;
	targetCity.value = sourceCity.value;
	targetCountryId.value = sourceCountryId.value;
}
