
    function validateCustomCreditCardDate(form) {
        var bValid = true;
        var focusField = null;
        var i = 0;
        var fields = new Array();
        var formName = form.getAttributeNode("name");

        oClubDate = eval('new ' + formName.value + '_customCreditCardDate()');

        for (x in oClubDate) {
            if ((form[oClubDate[x][0]].type == 'text' ||
                 form[oClubDate[x][0]].type == 'textarea') &&
                (form[oClubDate[x][0]].value.length > 0)  &&
                 form[oClubDate[x][0]].disabled == false) {
                
                if (!checkBaseJSDate(form,oClubDate)) {
                    if (i == 0) {
                        focusField = form[oClubDate[x][0]];
                    }
                    fields[i++] = oClubDate[x][1];
                    bValid = false;
                }
            }
        }
        if (fields.length > 0) {
            focusField.focus();
            alert(fields.join('\n'));
        }
        return bValid;
    }
    
    function checkBaseJSDate(form,oClubDate)
    {
    	monStr = form["expiryDateMon"].value;
    	yearStr = form["expiryDateYear"].value;
    		
		return compareDateWithNow(monStr,yearStr);
    }
    
    function compareDateWithNow(monStr,yearStr)
    {
    	if( monStr==undefined || yearStr==undefined || 
    		isNaN(monStr) || isNaN(yearStr) ||
	    	trim(monStr).length!=2 || trim(yearStr).length!=2 )
    		return false;

    	dayInt = 1;
    	monInt = parseInt(monStr,10);
    	yearInt = parseInt(yearStr,10)+2000;
    	if( !isValidDate(dayInt, monInt, yearInt) )
    		return false;	
    	
    	today = new Date();
    	baseDate = new Date(today.getYear(),today.getMonth()+1,1);
    	clubDate = new Date(yearInt,monInt,dayInt);

    	if( clubDate.getTime()<baseDate.getTime() )
    		return false;
    	
    	return true;
    }    
