This is the final product, more javascript needed though