]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - js/util.js
more array munging
[quix0rs-gnu-social.git] / js / util.js
index 50c311f993b558e420067552b540690c5c013ac8..603014dda8448a9eb33790c7b46a3ca483ba8a02 100644 (file)
@@ -2,31 +2,38 @@ $(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();
         }
-
 });
 
-        function doreply(nick) {
-            rgx_username = /^[0-9a-zA-Z\-_.]*$/;
-            if (nick.match(rgx_username)) {
-              replyto = "@" + nick + " ";
-              document.getElementById("status_textarea").value=replyto; 
-              document.getElementById("status_textarea").focus();
-            }
-        }
+function doreply(nick) {
+     rgx_username = /^[0-9a-zA-Z\-_.]*$/;
+     if (nick.match(rgx_username)) {
+          replyto = "@" + nick + " ";
+          if ($("#status_textarea")) {
+               $("#status_textarea").val(replyto);
+               $("#status_textarea").focus();
+          }
+     }
+     return false;
+}
+