diff --git a/web/root/sajax-forum/client_functions.xjs b/web/root/sajax-forum/client_functions.xjs index 82a0b410ca18250ccc5b4a9868a16289f2ea57bb..18c0d5e9596a657c03507f58b9d4d0ab9f3ed811 100644 --- a/web/root/sajax-forum/client_functions.xjs +++ b/web/root/sajax-forum/client_functions.xjs @@ -331,16 +331,27 @@ function ajaxpage(url, containerid, buttonid, buttonurl, is_script, prefix, suff function spin(current) { - switch(current) { - case '<span style="font-family: monospace;">Loading -</span>': - return('<span style="font-family: monospace;">Loading \\</span>'); - case '<span style="font-family: monospace;">Loading /</span>': - return('<span style="font-family: monospace;">Loading -</span>'); - case '<span style="font-family: monospace;">Loading |</span>': - return('<span style="font-family: monospace;">Loading /</span>'); - default: - return('<span style="font-family: monospace;">Loading |</span>'); + var spins=[ + ['│','/','─','\\'], + ['░','▒','▓','█','▓','▒'], + ['-', '=', '≡', '='], + ['┌','└','┘','┐'], + ['▄','▐','▀','▌'] + ]; + var spin; + var pos; + var m; + + m=current.match(/^\<span style="font-family: monospace;">\<!-- (\d+),(\d) -->Loading (.)\<\/span>$/); + if(m == null) { + spin=parseInt(Math.random()*spins.length); + pos=0; + } + else { + spin=parseInt(m[1]); + pos=parseInt(m[2])%spins[spin].length; } + return '<span style="font-family: monospace;"><!-- '+spin+','+pos+1+' -->Loading '+spins[spin][pos]+'</span>'; } function evalpage(page_request, containerid, prefix, suffix)