function setup_calendar()
{
	Calendar.setup({
	    inputField     :    "date-visual",       // id of the input field
	    ifFormat       :    "%e %B %Y",     // format of the input field
	    button         :    "date-in-calendar",  // trigger for the calendar (button ID)
	    align          :    "Tr",           // alignment (defaults to "Bl")
	    singleClick    :    true,
	    weekNumbers		: 	false
	});
	
	if (Calendar._SDN !== undefined) {
		delete Calendar._SDN;
	}
	Calendar._SDN_len = 3;
}

function onDateChange(elem)
{
	var date1 = elem.value;

	if (date1.indexOf("/") > 0)
	{
    	// METHOD 1: From UK d/m/Y to US m/d/Y conversion
    	var dateParts = date1.split('/');
    	if (dateParts[0] && dateParts[1] && dateParts[2])
	    	var date2 = dateParts[1] + '/' + dateParts[0] + '/' + dateParts[2];
	}
	else
	{
    	// METHOD 2: From UK d monthname Y to US m/d/Y conversion
    	var dateParts = date1.split(' ');
    	if (!(dateParts[0] && dateParts[1] && dateParts[2]))
    		return false;
    	var today = new Date();
    	var month = parseInt(today.getMonth()) + 1;
    	for (i in Calendar._MN)
    	{
	 		if (typeof(Calendar._MN[i]) == "string" && Calendar._MN[i].toLowerCase() == dateParts[1].toLowerCase())
	 			var month = parseInt(i) + 1;
    	}
		for (i in Calendar._SMN)
		{
			if (typeof(Calendar._SMN[i]) == "string" && Calendar._SMN[i].toLowerCase() == dateParts[1].toLowerCase())
				var month = parseInt(i) + 1;
		}
    	month = month < 10 ? '0'+month : month;
    	var day = dateParts[0] < 10 ? '0'+dateParts[0] : dateParts[0];
    	var date2 = month + '/' + day + '/' + dateParts[2];
	}

	if (date2)
    	document.getElementById("date-in").value = date2;
}