YAHOO.namespace('BEBO');

YAHOO.BEBO.textCounter = (function() {
    //puzzled by this pattern (the module pattern)? see http://yuiblog.com/blog/2007/06/12/module-pattern
    var uniqueInstance, field,
    countfield,
    maxlimit;
    var constructor = function(fieldIn, countfieldIn, maxlimitIn) {
        field = fieldIn;
        countfield = countfieldIn;
        maxlimit = maxlimitIn;
        if (! _proxy_jslib_handle(countfield, 'value', '', 0, 0))
            _proxy_jslib_assign('', countfield, 'value', '=', ( maxlimit -  _proxy_jslib_handle(field, 'value', '', 0, 0).length));
        YAHOO.util.Event.addListener(textarea, 'keyup', checkField);
    };
    var checkField = function(e) {
        if ( _proxy_jslib_handle(field, 'value', '', 0, 0).length >= maxlimit) {
            alert('<%= I.T("The message can be a maximum of")%> ' + (maxlimit) + ' <%=I.T("characters in length. Current message is")%> ' +  _proxy_jslib_handle(field, 'value', '', 0, 0).length + ' <%=I.T("characters")%>.');
             _proxy_jslib_assign('', field, 'value', '=', (  _proxy_jslib_handle(field, 'value', '', 0, 0).substring(0, maxlimit)));
            YAHOO.util.Event.preventDefault(e);
        } else {
             _proxy_jslib_assign('', countfield, 'value', '=', ( maxlimit -  _proxy_jslib_handle(field, 'value', '', 0, 0).length));
        }

    };
    //return the getInstance method (lazy loading)
    return {
        getInstance: function(field, countfield, maxlimit) {
            if (!uniqueInstance) {
                //Instantiate only if the instance doesn't exist
                uniqueInstance = constructor(field, countfield, maxlimit);
            }
            return uniqueInstance;
        },
        reset: function() {
             _proxy_jslib_assign('', field, 'value', '=', ( ""));
             _proxy_jslib_assign('', countfield, 'value', '=', ( maxlimit));
        }
    }
})();

 ;
_proxy_jslib_flush_write_buffers() ;