]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - js/util.js
lcase tname
[quix0rs-gnu-social.git] / js / util.js
index d0116574bf2d93d3b6013a430d8a73c230af8853..603014dda8448a9eb33790c7b46a3ca483ba8a02 100644 (file)
@@ -2,22 +2,26 @@ $(document).ready(function(){
         // count character on keyup
         function counter(){
             var maxLength     = 140;
-            var currentLength = $("#status_textarea").val().length;
-            var remaining = 140 - currentLength;
-            var counter = $("#counter");
+            var currentLength = $("#status_textarea").val()
+                                                     .replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g, "drry")
+                                                     .replace(/[\u0800-\uFFFF]/g, "drr")
+                                                     .replace(/[\u0080-\u07FF]/g, "dr")
+                                                     .length;
+            var remaining = maxLength - currentLength;
+            var counter   = $("#counter");
             counter.text(remaining);
 
-            if(remaining <= 0) {
+            if (remaining <= 0) {
                 counter.attr("class", "toomuch");
-                } else {
+            } else {
                 counter.attr("class", "");
-                }
+            }
         }
      
         if ($("#status_textarea").length) {
             $("#status_textarea").bind("keyup", counter);
             // run once in case there's something in there
-                       counter();
+            counter();
         }
 });
 
@@ -26,7 +30,7 @@ function doreply(nick) {
      if (nick.match(rgx_username)) {
           replyto = "@" + nick + " ";
           if ($("#status_textarea")) {
-               $("#status_textarea").value=replyto;
+               $("#status_textarea").val(replyto);
                $("#status_textarea").focus();
           }
      }