this file is required due to differences in behavior between Mozilla/Opera 
and Internet Explorer.

main-data.html calls kickOffTests() which calls top.testManager.start()
in the top most frame. top.testManager.start() initializes the output 
frames using document.write and HTML containing a relative <link> to the 
jsUnitStyle.css file. In MSIE, the base href used to find the CSS file is 
that of the top level frame however in Mozilla/Opera the base href is
that of main-data.html. This leads to not-found for the jsUnitStyle.css
in Mozilla/Opera. Creating app/css/jsUnitStyle.css works around this problem.
