function substr_count (haystack, needle, offset, length) {
    // http://kevin.vanzonneveld.net
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   bugfixed by: Onno Marsman
    // *     example 1: substr_count('Kevin van Zonneveld', 'e');
    // *     returns 1: 3
    // *     example 2: substr_count('Kevin van Zonneveld', 'K', 1);
    // *     returns 2: 0
    // *     example 3: substr_count('Kevin van Zonneveld', 'Z', 0, 10);
    // *     returns 3: false

    var pos = 0, cnt = 0;

    haystack += '';
    needle += '';
    if (isNaN(offset)) {offset = 0;}
    if (isNaN(length)) {length = 0;}
    offset--;

    while ((offset = haystack.indexOf(needle, offset+1)) != -1){
        if (length > 0 && (offset+needle.length) > length){
            return false;
        } else{
            cnt++;
        }
    }

    return cnt;
}
@@ -51,16 +51,17 @@
 ength) %7B
+%0D
 %0A    // 
@@ -89,16 +89,17 @@
 veld.net
+%0D
 %0A    // 
@@ -166,16 +166,17 @@
 eld.net)
+%0D
 %0A    // 
@@ -204,16 +204,17 @@
  Marsman
+%0D
 %0A    // 
@@ -271,16 +271,17 @@
 ', 'e');
+%0D
 %0A    // 
@@ -298,16 +298,17 @@
 rns 1: 3
+%0D
 %0A    // 
@@ -368,16 +368,17 @@
 'K', 1);
+%0D
 %0A    // 
@@ -395,16 +395,17 @@
 rns 2: 0
+%0D
 %0A    // 
@@ -469,16 +469,17 @@
  0, 10);
+%0D
 %0A    // 
@@ -500,17 +500,19 @@
 3: false
-%0A
+%0D%0A%0D
 %0A    var
@@ -529,17 +529,19 @@
 cnt = 0;
-%0A
+%0D%0A%0D
 %0A    hay
@@ -548,24 +548,25 @@
 stack += '';
+%0D
 %0A    needle 
@@ -571,16 +571,17 @@
 e += '';
+%0D
 %0A    if 
@@ -605,24 +605,25 @@
 offset = 0;%7D
+%0D
 %0A    if (isN
@@ -647,16 +647,17 @@
 th = 0;%7D
+%0D
 %0A    off
@@ -662,17 +662,19 @@
 ffset--;
-%0A
+%0D%0A%0D
 %0A    whi
@@ -730,16 +730,17 @@
  != -1)%7B
+%0D
 %0A       
@@ -791,16 +791,17 @@
 length)%7B
+%0D
 %0A       
@@ -818,16 +818,17 @@
 n false;
+%0D
 %0A       
@@ -833,19 +833,10 @@
    %7D
- else%7B%0A    
+%0D%0A
     
@@ -849,25 +849,18 @@
 t++;
+%0D
 %0A
-  
     
-  %7D%0A    %7D%0A
+%7D%0D%0A%0D
 %0A   
@@ -871,10 +871,11 @@
 urn cnt;
+%0D
 %0A%7D

Simplify function slightly