<html>
<head>
<style>
div { margin: 1px; }
div { margin: 1px 2px; }
div { margin: 1px 2px 3px; }
div { margin: 1px 2px 3px 4px; }

div { padding: 1px; }
div { padding: 1px 2px; }
div { padding: 1px 2px 3px; }
div { padding: 1px 2px 3px 4px; }

div { border-top: red; }
div { border-bottom: red; }
div { border-left: red; }
div { border-right: red; }
</style>
</head>
<body>
<pre id="result"></pre>
<script>
if (window.layoutTestController)
    layoutTestController.dumpAsText();
var styleSheet = document.styleSheets.item(0);
var s = "";
for (var i = 0; i < styleSheet.cssRules.length; i++) {
	var rule = styleSheet.cssRules[i];
	var prop = null;
	if (i < 4) prop = "margin";
	else if (i >= 4 && i < 8) prop = "padding";
	else if (i == 8) prop = "border-top";
	else if (i == 9) prop = "border-bottom";
	else if (i == 10) prop = "border-left";
	else if (i == 11) prop = "border-right";
	s += rule.style.getPropertyValue(prop) + " (" + rule.style[prop] + ")\n";
}
document.getElementById("result").innerText = s;
</script>
</body>
</html>
