Refactored

The main idea is to remove the huge switch cases.
Adding some Javascript good practices (mappings, use of natives).
Passed from 181 lines and 446 colums to 131 lines and 107 columns.

It passes the examples and I'm using it.
Fixes #45 and creates a test that works with the new version
Update functions/strings/sprintf.js

Fix the bug of printing 64-bit long integers.
Merge pull request #53 from Allidylls/patch-1

Update functions/strings/sprintf.js
'd' flag should use truncated number not rounded
Merge pull request #51 from ducksmanager/master

Fixes #45 (xdiff_string_patch : Patched string doesn't contain end of original string)
Merge pull request #50 from amatiasq/patch-1

Refactored
date.js JSLint compatibility

Changes to the date() function to allow it to pass JSLint, with the following parameters:

/*jslint bitwise: true, nomen: true, sloppy: true, white: true */

I didn't touch the bitwise operations, because I don't understand all of the repercussions.
Add flip support for ordered associative array; add example to array_change_key_case() and optimize
fix unpack() to work with shorts (Ssv): add missing parenthesis around bit shift
Merge pull request #55 from deadbyte/master

Fix unpack to work with shorts
Merge pull request #54 from markedwards/patch-1

date.js JSLint compatibility
Added percent parameter to closer resemble php.

Just a little functionality added, to first of all be more closer to the original and second of all it is a useful function.
Whitespaces should be correct now as well.
Merge pull request #57 from Globegitter/patch-2

Added percent parameter to closer resemble php.
Make it more clear what percent does. Fix param.

As explained here https://github.com/kvz/phpjs/pull/57#issuecomment-10804314
Update functions/strings/strnatcasecmp.js

Fixes bug where strnatcasecmp("churn rate", "churnrate") loops infinitely.
Merge pull request #59 from martindrapeau/master

Infinite loop in strnatcasecmp
Fixed date('z') to match PHP day in year *0-based*
Merge pull request #60 from evictor/master

date('z') implemented incorrectly to be 1-based, should be 0-based
Add github ribbon