
    function validateCustomDate(form) {
        var bValid = true;
        var focusField = null;
        var i = 0;
        var fields = new Array();
        var formName = form.getAttributeNode("name");

        oCustomDate = eval('new ' + formName.value + '_customDate()');

        for (x in oCustomDate) {
            if ((form[oCustomDate[x][0]].type == 'text' ||
                 form[oCustomDate[x][0]].type == 'textarea') &&
                (form[oCustomDate[x][0]].value.length > 0)  &&
                 form[oCustomDate[x][0]].disabled == false) {
                
                if (!checkDate(form,oCustomDate)) {
                    if (i == 0) {
                        focusField = form[oCustomDate[x][0]];
                    }
                    fields[i++] = oCustomDate[x][1];
                    bValid = false;
                }
            }
        }
        if (fields.length > 0) {
            focusField.focus();
            alert(fields.join('\n'));
        }
        return bValid;
    }
    
    function checkDate(form,oCustomDate)
    {
        dayField = oCustomDate[x][2]("day_field");
        monField = oCustomDate[x][2]("mon_field");
        yearField = oCustomDate[x][2]("year_field");
        
    	dayStr = form[dayField].value;
    	monStr = form[monField].value;
    	yearStr = form[yearField].value;
    	
    	if( isNaN(dayStr) || isNaN(monStr) || isNaN(yearStr) ||
    		trim(dayStr).length==0 || trim(monStr).length==0 || trim(yearStr).length==0 )
    		return false;
    		
    	return isValidDate(dayStr, monStr, yearStr);
    }
    

