http://www.codeproject.com/Articles/580165/JavaScript-Best-Practices