 function  _CF_checkpromo(_CF_this)
    {
        //reset on submit
        _CF_error_exists = false;
        _CF_error_messages = new Array();
        _CF_error_fields = new Object();
        _CF_FirstErrorField = null;

        //form element first_name required check
        if( !_CF_hasValue(_CF_this['first_name'], "TEXT", false ) )
        {
            _CF_onError(_CF_this, "first_name", _CF_this['first_name'].value, "Please enter a first name.");
            _CF_error_exists = true;
        }

        //form element last_name required check
        if( !_CF_hasValue(_CF_this['last_name'], "TEXT", false ) )
        {
            _CF_onError(_CF_this, "last_name", _CF_this['last_name'].value, "Please enter a last name.");
            _CF_error_exists = true;
        }

        //form element email_address required check
        if( _CF_hasValue(_CF_this['email_address'], "TEXT", false ) )
        {
            //form element email_address 'EMAIL' validation checks
            if (!_CF_checkEmail(_CF_this['email_address'].value, true))
            {
                _CF_onError(_CF_this, "email_address", _CF_this['email_address'].value, "Please enter a valid email address.");
                _CF_error_exists = true;
            }

        }else {
            _CF_onError(_CF_this, "email_address", _CF_this['email_address'].value, "Please enter a valid email address.");
            _CF_error_exists = true;
        }

        //form element street_address required check
        if( !_CF_hasValue(_CF_this['street_address'], "TEXT", false ) )
        {
            _CF_onError(_CF_this, "street_address", _CF_this['street_address'].value, "Please enter a valid street address.");
            _CF_error_exists = true;
        }

        //form element city required check
        if( !_CF_hasValue(_CF_this['city'], "TEXT", false ) )
        {
            _CF_onError(_CF_this, "city", _CF_this['city'].value, "Please enter a valid city.");
            _CF_error_exists = true;
        }

        //form element zip required check
        if( _CF_hasValue(_CF_this['zip'], "TEXT", false ) )
        {
            //form element zip 'ZIPCODE' validation checks
            if (!_CF_checkzip(_CF_this['zip'].value, true))
            {
                _CF_onError(_CF_this, "zip", _CF_this['zip'].value, "Please enter a valid zip code.");
                _CF_error_exists = true;
            }

        }else {
            _CF_onError(_CF_this, "zip", _CF_this['zip'].value, "Please enter a valid zip code.");
            _CF_error_exists = true;
        }

        //form element legal_age required check
        if( _CF_hasValue(_CF_this['legal_age'], "CHECKBOX", false ) )
        {
            //form element legal_age 'BOOLEAN' validation checks
            if (!_CF_checkBoolean(_CF_this['legal_age'].value, true))
            {
                _CF_onError(_CF_this, "legal_age", _CF_this['legal_age'].value, "Please verify your age.");
                _CF_error_exists = true;
            }

        }else {
            _CF_onError(_CF_this, "legal_age", _CF_this['legal_age'].value, "Please verify your age.");
            _CF_error_exists = true;
        }


        //display error messages and return success
        if( _CF_error_exists )
        {
            if( _CF_error_messages.length > 0 )
            {
                // show alert() message
                _CF_onErrorAlert(_CF_error_messages);
                // set focus to first form error, if the field supports js focus().
                if( _CF_this[_CF_FirstErrorField].type == "text" )
                { _CF_this[_CF_FirstErrorField].focus(); }

            }
            return false;
        }else {
            return true;
        }
    }
