function filterList(obj)
{
	option = obj.options.selectedIndex;
	if (!obj.options[option].value) { obj.options.selectedIndex = 0; return false; }
	obj.form.submit();
}

function getFormElement(element) {
	ref = false;
	if (document.forms.length) {
		if (document.forms[0]['action['+element+']']) {
			ref = document.forms[0]['action['+element+']'];
		}
	}
	return ref;
}

function getFormRecord(element) {
	ref = false;
	if (document.forms.length) {
		if (document.forms[0]['record['+element+']']) {
			ref = document.forms[0]['record['+element+']'];
		}
	}
	return ref;
}

function getFormChk(element) {
	ref = false;
	if (document.forms.length) {
		if (document.forms[0][element]) {
			ref = document.forms[0][element];
		}
	}
	return ref;
}

function setFormElement(element,value) {
	if (getFormElement(element)) { getFormElement(element).value = value; }
}

function formSetAction(obj) {
	if (typeof(obj) == 'object') {
		for (key in obj) {
		    if (key == 'url')
		    {
		        formSetURL(obj[key]);
		    } else {
			    setFormElement(key,obj[key]);
			}
		}
		submitForm();
	}
	return false;
}

function formSetURL(obj) {
	document.forms[0].action = obj;
	return false;
}

function submitForm() {
	document.forms[0].submit();
	return false;
}

function checkSubmit() {
    return (0) ? true : false;
}

function clearCheckBox(element,text) {
	if (getElement(element) && getElement(text) && getElement(text).innerHTML != "-" && getElement('record['+text+']'))
	{
		getElement(text).innerHTML = '-';
		getElement(element).checked = false;
		getElement('record['+text+']').value = '';
	}
}

function showContact(id) {
    if (getElement('contact_'+id))
    {
        opn = (getElement('contact_'+id).style.display == 'block');

        msg = (!opn) ? "Hide contact details" : "Show contact details";
        display = (opn) ? "none" : "block";

        getElement('showhide_'+id).innerHTML = msg;
        getElement('contact_'+id).style.display = display;
    }
    if (getElement('contactc_'+id))
    {
        opn = (getElement('contactc_'+id).style.display == 'block');

        msg = (!opn) ? "Hide organisation details" : "Show organisation details";
        display = (opn) ? "none" : "block";

        getElement('showhidec_'+id).innerHTML = msg;
        getElement('contactc_'+id).style.display = display;
    }
    return false;
}

function calendarCallback(date, month, year, formID)
{
	element = getFormRecord(formID);
	if (element)
	{
		getElement('calendar_'+formID).innerHTML = ''; // Be nice to IE5.x for Mac
		getElement('calendar_'+formID).innerHTML = constructDate(date,month,year,"dd mmm, yyyy");
		if (getFormChk('chk_'+formID).type == 'checkbox') { getFormChk('chk_'+formID).checked = true; }
		element.value = constructDate(date,month,year,"yyyy-mm-dd");
	}
}

function constructDate(d,m,y,format)
{
	monthName =	new Array("January","February","March","April","May","June","July","August","September","October","November","December")
	sTmp = format
	sTmp = sTmp.replace ("dd","<e>")
	sTmp = sTmp.replace ("d","<d>")
	sTmp = sTmp.replace ("<e>",padZero(d))
	sTmp = sTmp.replace ("<d>",d)
	sTmp = sTmp.replace ("mmm","<o>")
	sTmp = sTmp.replace ("mm","<n>")
	sTmp = sTmp.replace ("m","<m>")
	sTmp = sTmp.replace ("<m>",m)
	sTmp = sTmp.replace ("<n>",padZero(m))
	sTmp = sTmp.replace ("<o>",monthName[m-1])
	return sTmp.replace ("yyyy",y)
}

function padZero(num) {
	return (num	< 10)? '0' + num : num ;
}

function toggleDateChkBox(element,text) {
	if (getFormChk('chk_'+element) && getElement(text))
	{
		getFormChk('chk_'+element).checked = false;
		getFormRecord(element).value = '';
		getElement(text).innerHTML = '-';
	}
}

function field_digit(evt) {
    evt = (evt) ? evt : ((window.event) ? event : null);
    if (evt) {
        var elem = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
        if (elem) {
            var charCode = (evt.charCode) ? evt.charCode : ((evt.which) ? evt.which : evt.keyCode);
            if ((charCode < 32) || (charCode > 44 && charCode < 47) || (charCode > 47 && charCode < 58))
            {
                return true;
            } else {
                return false;
            }
        }
    }
}

