Abstraction and Namespacing

Cleaned up some CSS for a cleaner look,
Abstracted the javascript a little and added namespacing,
Namespaced the css to prevent conflicts