It is not done yet but check it out and please give some advice!
I used most codes from @23ScratchMan. But some are from me! Please kind comments.