I would recommend, as much as possible, utilizing libraries of code and Script Extensions to reduce the amount of code and tests that you have to write and maintain.
I would also investigate implementing some sort of data driven/table driven testing where the tests are not in the projects themselves but are stored in some sort of data table file (like a CSV or Excel sheet). Then, when you run your tests, your framework will read the test parameters from the files, execute the tests, and iterate through the files. This will greatly reduce the amount of script repetition and re-use in your projects and increase your maintainability and portability of your tests.
I would HIGHLY recommend reading Linda G. Hayes book "The Automated Testing Handbook". While it is not tool specific nor does it describe details script code, it lays out some high-level concepts that work VERY well in creating a maintainable and efficient automated testing framework.
http://www.softwaretestpro.com/Item/4772/The-Automated-Testing-Handbook/Automation-Quality-Assurance-Test-and-QA-Technology-Testing