Mockups for some of the Melange views, adapted from the existing GSoC web app
authorTodd Larsen <tlarsen@google.com>
Mon, 28 Jul 2008 20:42:10 +0000
changeset 58 cee78a1ae672
parent 57 e30229fd9add
child 59 88072f164d1e
Mockups for some of the Melange views, adapted from the existing GSoC web app (but in some cases significantly altered). All of the relative links assume /svn/trunk/mockups/ so that the pages will display properly when accessed from http://soc.googlecode.com/svn/trunk/mockups/.
mockups/content/css/mockups.css
mockups/content/images/GHOP.jpg
mockups/content/images/GSOC.jpg
mockups/content/images/logo-custom.gif
mockups/content/images/opentriangle.gif
mockups/content/images/triangle.gif
mockups/content/js/blog.js
mockups/program/community/gsoc2009/gsoc2009comm.html
mockups/program/home/ghop2008/ghop2008home.html
mockups/program/home/gsoc2009/gsoc2009home.html
mockups/sitehome.html
mockups/user/profile/linkname/profile.html
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mockups/content/css/mockups.css	Mon Jul 28 20:42:10 2008 +0000
@@ -0,0 +1,919 @@
+body {
+  background-color: white;
+  color: black;
+  font-family: Arial, sans-serif;
+  font-size: small;
+  margin: 8px;
+  margin-top: 3px;
+}
+
+img {
+  border: 0;
+}
+
+table {
+  border-collapse: collapse;
+}
+
+th, td {
+  padding: 0;
+  vertical-align: top;
+  text-align: left;
+}
+
+a:link {
+  color: #0000cc;
+}
+
+a:active {
+  color: #cc0000;
+}
+
+a:visited {
+  color: #551a8b;
+}
+
+h1 {
+  font-size: x-large;
+  margin-top: 0px;
+}
+
+h2 {
+  font-size: large;
+}
+
+h3 {
+  font-size: medium;
+}
+
+h4 {
+  font-size: small;
+}
+
+form {
+  margin: 0;
+  padding: 0;
+}
+
+li {
+  margin-bottom: 0.25em;
+}
+
+pre, code {
+  color: #007000;
+  font-family: "bogus font here", monospace;
+  font-size: 100%;
+}
+
+pre {
+  border: 1px solid silver;
+  background-color: #f5f5f5;
+  padding: 0.5em;
+  overflow: auto;
+  margin: 2em;
+}
+
+pre ins {
+  color: #cc0000;
+  font-weight: bold;
+  text-decoration: none;
+}
+
+.newmark {
+  color: red;
+  font-size: 80%;
+  vertical-align: top;
+}
+
+a.selected, .selected a, .selected {
+  color: black;
+  font-weight: bold;
+  text-decoration: none;
+}
+
+a.selected:visited, .selected a:visited {
+  color: black;
+}
+
+#login {
+  text-align: right;
+}
+
+#header {
+  height: 50px;
+  margin-bottom: 11px;
+  position: relative;
+}
+
+#logo {
+  padding-right: 18px;
+  position: absolute;
+  left: 0;
+  top: -5px;
+}
+
+#logo img {
+  width: 143px;
+  height: 59px;
+}
+
+#title {
+  border-top: 1px solid #3366cc;
+  background-color: #e5ecf9;
+  font-size: large;
+  font-weight: bold;
+  margin: 0;
+  padding: 0;
+  padding-top: 1px;
+  padding-bottom: 1px;
+  margin-top: 5px;
+}
+
+#title, #breadcrumbs {
+  margin-left: 200px;
+  padding-left: 3px;
+}
+
+#breadcrumbs {
+  margin-top: 3px;
+}
+
+#side {
+  width: 200px;
+  margin-bottom: 3em;
+  float: left;
+}
+
+#menu ul {
+  margin: 0;
+  padding: 0;
+  list-style-type: none;
+  margin-bottom: 1em;
+  font-size: 95%;
+}
+
+#menu ul ul {
+  margin-left: 10px;
+  margin-bottom: 0;
+}
+
+#menu li {
+  margin-top: 4px;
+}
+
+#menu h4 {
+  margin: 0;
+  padding: 0;
+  margin-bottom: 1em;
+}
+
+#badge {
+  clear: both;
+  margin-top: 3.5em;
+  margin-bottom: 1em;
+  height: 53px;
+  font-style: italic;
+}
+
+#search {
+  margin-top: 2em;
+}
+
+#search .header {
+  font-weight: bold;
+  font-size: 90%;
+  margin-bottom: 1px;
+}
+
+#search .button {
+  margin-top: 1px;
+}
+
+#search .input input {
+  width: 125px;
+}
+
+#body {
+  border-left: 1px dotted silver;
+  margin-left: 200px;
+  margin-right: 25px;
+  padding-left: 18px;
+  padding-bottom: 25px;
+}
+
+#footer {
+  clear: both;
+  text-align: center;
+  margin-top: 3.5em;
+  margin-bottom: 1em;
+  background-image: url("http://www.google.com/images/art.gif");
+  height: 53px;
+  background-repeat: no-repeat;
+  background-position: left center;
+}
+
+#footer .text {
+  padding-top: 20px;
+}
+
+div.download {
+  padding-top: 0.5em;
+  padding-bottom: 0.5em;
+}
+
+div.download a {
+  border: 1px solid #3366cc;
+  background-color: #e5ecf9;
+  padding: 0.5em;
+  position: relative;
+  font-weight: bold;
+}
+
+.termsagree {
+  margin-top: 1em;
+  margin-bottom: 1em;
+  background-color: #e5ecf9;
+  padding: 0.5em;
+}
+
+.termsagree .button {
+  padding-top: 0.5em;
+}
+
+.termsagree .text {
+  font-weight: bold;
+}
+
+.termsagree .text .printable {
+  font-weight: normal;
+}
+
+.termsagree .text, .termsagree .button {
+  padding-left: 5px;
+}
+
+@media print {
+  .noprint {
+    display: none;
+  }
+
+  #header, #side, #login {
+    display: none;
+  }
+
+  #body {
+    margin: 0;
+    border: 0;
+    padding: 0;
+  }
+}
+
+table.programorgs {
+  text-align: left;
+  width: 100%;
+  border-color: #e5ecf9;
+  border-width: 5px;
+  border-left-style: solid;
+  border-right-style: solid;
+  border-bottom-style: solid;
+}
+
+table.programorgs td {
+  padding-left: 5px;
+}
+
+table.programorgs td.triangle {
+  width: 10px;
+}
+
+table.programorgs td.letter {
+  width: 1em;
+}
+
+table.tabletabs {
+  width: 100%;
+}
+
+table.tabletabs td {
+  text-align: center;
+}
+
+table.tabletabs td.notab {
+  border-bottom-width: 5px;
+  border-bottom-style: solid;
+  border-bottom-color: #e5ecf9;
+  border-right-style: hidden;
+}
+
+table.tabletabs td.tab {
+  border-bottom: 5px solid #e5ecf9;
+  border-top: 2px solid #e5ecf9;
+  border-right: 2px solid #e5ecf9;
+  border-left: 2px solid #e5ecf9;
+}
+
+table.tabletabs td.selectedtab {
+  border: 5px #e5ecf9;
+  border-style: solid solid hidden solid;
+  font-weight: bold;
+}
+
+table.profile {
+  text-align: left;
+  width: 100%;
+  border-width: 0px 0px 0px 0px;
+  border-spacing: 2px;
+  border-style: hidden hidden hidden hidden;
+  border-collapse: separate;
+}
+
+table.profile td {
+  padding-left: 5px;
+}
+
+table.profile td.explain {
+  padding-left: 5px;
+  font-size: 75%;
+  vertical-align: top;
+}
+
+table.profile td.submit {
+  text-align: center;
+}
+
+table.profile th {
+  padding-top: 5px;
+  text-align: left;
+  font-weight: bold;
+  font-style: italic;
+}
+
+table.user_roles {
+  text-align: left;
+  width: 100%;
+  border-width: 0px 0px 0px 0px;
+  border-spacing: 2px;
+  border-style: hidden hidden hidden hidden;
+  border-collapse: separate;
+}
+
+table.user_roles td {
+  border-width: 0px 0px 0px 0px;
+  padding: 2px 2px 2px 2px;
+  border-style: hidden hidden hidden hidden;
+  -moz-border-radius: 0px 0px 0px 0px;
+  font-family: sans-serif;
+  text-align: left;
+}
+
+table.user_roles td.program_last {
+  border-width: 0px 0px 1px 0px;
+  padding: 2px 2px 2px 2px;
+  border-style: hidden hidden solid hidden;
+  -moz-border-radius: 0px 0px 0px 0px;
+  font-family: sans-serif;
+  text-align: left;
+}
+
+table.user_roles td.org_last {
+  border-width: 0px 0px 1px 0px;
+  padding: 2px 2px 2px 2px;
+  border-style: hidden hidden dotted hidden;
+  -moz-border-radius: 0px 0px 0px 0px;
+  font-family: sans-serif;
+  text-align: left;
+}
+
+td.h1 {
+  text-align: left;
+  font-family: sans-serif;
+  font-weight: bold;
+}
+
+td.h2 {
+  text-align: center;
+  font-family: sans-serif;
+  font-style: italic;
+  font-weight: bold;
+  border-bottom-width: 1px;
+  border-style: none none solid none;
+  background: #c3d9ff;
+}
+
+td.program {
+}
+
+td.org {
+}
+
+td.role {
+}
+
+td.error {
+  color: #cc0000;
+  border-style: solid;
+  border-color: red;
+  font-size: 80%;
+}
+
+td.error_outline {
+  color: #cc0000;
+  border-style: solid;
+  border-color: red;
+}
+
+th.error {
+  color: #cc0000;
+}
+
+table.input {
+  font-size: 100%;
+  background: #c3d9ff;
+  -moz-border-radius-topleft: 4px; -moz-border-radius-topright: 4px;
+  -moz-border-radius-bottomright: 4px; -moz-border-radius-bottomleft: 4px;
+}
+
+table.input td {
+  background: #c3d9ff;
+  padding-left: 5px;
+}
+
+table.input td.help {
+  background: #c3d9ff;
+  padding-left: 5px;
+  font-size: 75%;
+}
+
+td.explain {
+  width: 200px;
+  /*color: #676767; */
+  vertical-align: top;
+}
+
+table.input th {
+  padding-top: 5px;
+  text-align: left;
+  font-size: 120%;
+}
+
+.important {
+  color:#cc0000;
+  font-style:italic;
+}
+
+.important a {
+  color:#cc0000;
+}
+
+.statusmsg {
+  font-style:italic;
+  font-size:x-small;
+}
+
+#panel {
+  margin-top: 4ex;
+}
+
+#panel input {
+  width: 150px;
+  margin-bottom: 4px;
+}
+
+table.mentororg {
+  width: 100%;
+}
+
+td.mentororg {
+  background:#bbcced ;
+  padding: 5px;
+}
+
+td.mentororg a {
+  color: #aa0033;
+}
+
+td.mentorapp {
+  padding-left: 20px;
+  background: #e8e8e8;
+}
+
+span.would {
+  background-color: yellow;
+}
+
+span.interested {
+  background-color: green;
+}
+
+span.indifferent {
+  background-color: blue;
+}
+
+span.disagree {
+  background-color: red;
+}
+
+table.applist  {
+  background: #C3D9FF;
+  border-spacing: 0px;
+  -moz-border-radius-topleft: 4px;
+  -moz-border-radius-topright: 4px;
+  -moz-border-radius-bottomright: 4px;
+  -moz-border-radius-bottomleft: 4px;
+}
+
+table.applist td, th {
+  padding-left: 5px;
+  padding-right: 5px;
+}
+
+tr.listapp {
+  background: #E8EEF7;
+}
+
+tr.listrequestapp {
+  background: #c2bddd;
+}
+
+tr.listapp:hover {
+  background: #ffeac0;
+  cursor: pointer;
+}
+
+tr.listrequestapp:hover {
+  background: #ffeac0;
+  cursor: pointer;
+}
+
+tr.lastacceptlistapp {
+  text-align: center;
+}
+
+table.mentors {
+  width: 100%;
+  border-spacing: 0px;
+  background: #C3D9FF;
+  -moz-border-radius-topleft: 4px;
+  -moz-border-radius-topright: 4px;
+  -moz-border-radius-bottomright: 4px;
+  -moz-border-radius-bottomleft: 4px;
+}
+
+td.orgapp {
+  padding-left: 20px;
+  background: #e8eef7;
+}
+
+th.orgapp {
+  text-align: left;
+  padding-left: 10px;
+  background: #e8eef7;
+  font-size: 80%;
+  font-weight: normal;
+}
+
+table.apptable {
+  background: #c3d9ff;
+  -moz-border-radius-topleft: 4px; -moz-border-radius-topright: 4px;
+  -moz-border-radius-bottomright: 4px; -moz-border-radius-bottomleft: 4px;
+  width: 100%;
+  border-spacing: 0px;
+}
+
+table.apptable td {
+  background: none;
+}
+
+table.apptable a {
+  color: #3366cc;
+}
+
+td.newapp a {
+  color: #008000;
+}
+
+tr.appodd {
+}
+
+tr.appeven {
+  background: #e5ecf9;
+}
+
+td.time {
+  font-size: 60%;
+}
+
+pre {
+  overflow: auto;
+}
+
+h2 {
+  font-size: large;
+}
+
+div.extern_app {
+  background: #bbcced;
+  margin: 10px;
+  padding: 2px;
+}
+
+td.extern_app {
+  vertical-align:top;
+}
+
+div.extern_orginfo {
+  width: 200px;
+  border-style: solid;
+  border-color: #3399cc;
+  padding: 10px;
+}
+
+td.extern_orginfo {
+  vertical-align:top;
+}
+
+table.organizations td {
+  padding-right: 25px;
+  vertical-align: top;
+}
+
+div.sidebar a {
+  color: #3366cc;
+}
+
+div.sidebar {
+  padding: 1px;
+}
+
+div.sidebarselect {
+  padding: 3px;
+  background: #C3D9FF;
+  -moz-border-radius-topleft: 4px;
+  -moz-border-radius-bottomleft: 4px;
+}
+
+div.sidebarselect a {
+  color: #3366cc;
+}
+
+td.frameleft {
+  padding: 3px;
+  background: #C3D9FF;
+  -moz-border-radius-topleft: 4px;
+  -moz-border-radius-bottomleft: 4px;
+}
+
+td.frameright {
+  padding: 3px;
+  background: #C3D9FF;
+  -moz-border-radius-topright: 4px;
+  -moz-border-radius-bottomright: 4px;
+}
+
+div.frametop {
+  padding: 3px;
+  background: #C3D9FF;
+  width: 100%;
+}
+
+div.info {
+  background: #FFcc33;
+  text-align: center;
+  width: 100%;
+}
+
+div.orgabout {
+  padding: 5px
+}
+
+div.orgaboutdescript {
+  padding: 5px
+}
+
+div.question {
+  padding: 10px;
+  font-size: 120%;
+  font-weight: bold;
+}
+
+div.section {
+  padding: 10px;
+  font-size: 130%;
+  font-weight: bold;
+  text-align: center;
+}
+
+div.sectionlist {
+  padding: 10px;
+  font-size: 120%;
+  font-weight: bold;
+}
+
+div.app_text {
+  background-color: #ffffff;
+  padding-left: 5px;
+  font-family: Fixed,monospace;
+  -moz-border-radius-topleft: 6px;
+  -moz-border-radius-topright: 6px;
+  -moz-border-radius-bottomright: 6px;
+  -moz-border-radius-bottomleft: 6px;
+}
+
+div.comment_group {
+  width: 100%;
+  margin-bottom: 5px;
+}
+
+div.comment {
+  background-color: #e8e8e8;
+  margin: 5px;
+  padding: 2px;
+}
+
+div.comment_time {
+  width: auto;
+  background: #C3D9FF;
+  padding: 2px;
+}
+
+div.comment_text {
+  margin-top: 2px;
+}
+
+h2.infosection {
+  border-bottom: 1px solid black;
+}
+
+td.navanchor {
+  text-align: right;
+  font-size: x-small;
+}
+
+.tB {
+  padding: 3px;
+  border: 1px solid #ffdea0;
+  background-color: #fff8dc;
+  margin-bottom:0.5em;
+  margin-top:1em;
+  font-weight:bold;
+}
+
+.tB td{
+  background-color:#fff8dc;
+}
+
+.tB a {
+  font-weight:normal;
+  font-size:x-small;
+}
+
+.tBRed {
+  padding: 3px;
+  border: 1px solid #cdc9c9;
+  background-color: #ffe5e5;
+  margin-bottom:0.5em;
+  margin-top:1em;
+  font-weight:bold;
+}
+
+table.tB2 {
+  border: 1px solid #ffdea0;
+  border-spacing: 0px;
+  -moz-border-radius-topleft: 4px;
+  -moz-border-radius-topright: 4px;
+  -moz-border-radius-bottomright: 4px;
+  -moz-border-radius-bottomleft: 4px;
+}
+
+table.tB2 th{
+  background-color: #e5ecf9;
+  border-top: 1px solid #ffdea0;
+  border-bottom: 1px solid #ffdea0;
+  padding: 1px
+}
+
+table.tB2 td {
+  padding-left: 5px;
+  padding-right: 5px;
+}
+
+.tBRed td {
+  background-color:#ffe5e5;
+}
+
+.tBRed a {
+  font-weight: normal;
+  font-size: x-small;
+}
+
+.ftl {
+  font-weight: bold;
+}
+
+dt {
+  font-weight: bold;
+}
+
+dd {
+  margin:0em 0em 1em 1em;
+}
+
+ul {
+  margin-top: 0;
+}
+
+.colorswatch {
+  height: 18px;
+  width: 20px;
+}
+
+.colorhover {
+  border: 1px solid blue;
+  cursor: pointer;
+  background: #fff;
+}
+
+.colorchooser {
+  position: absolute;
+  display:none; z-index:999;
+}
+
+.mono {
+  font-family: "Courier New", Courier, monospace;
+}
+
+table.palette {
+  font-size: 5px;
+  border: 1px solid #999;
+  border-collapse: collapse;
+}
+
+table.palette td a {
+  display: block;
+  text-decoration: none;
+}
+
+table.palette td a div {
+  width: 20px;
+  height: 20px;
+}
+
+table.palette a {
+  border: 1px solid #ccc;
+  padding: 1px;
+}
+
+table.palette a:hover {
+  border: 1px solid red;
+  cursor: pointer;
+}
+
+span.selectedresponse {
+  font-weight: bold;
+  border-bottom: 1px solid #ffdea0;
+  border-right: 1px solid #ffdea0;
+  background-color: #fff8dc;
+}
+
+.popup {
+  cursor: help;
+  text-decoration: none;
+}
+
+.blog {
+  border: 10px solid #e5ecf9;
+  border-top: 1px solid #3366cc;
+}
+
+.blog h2 {
+  margin-top: 0.1em;
+  background-color: #e5ecf9;
+}
+
+.blog h2 a, .blog h2 a:visited {
+  text-decoration: none;
+  color: black;
+}
+
+.blog .entry {
+  margin-bottom: 1em;
+}
+
+.blog .title {
+   font-size: medium;
+}
+
+.blog .author {
+  color: gray;
+  margin-bottom: 0.5em;
+}
+
+.blog .snippet {
+  background-color: white;
+}
+
+.todo {
+  color: #cc0000;
+  font-size: 80%;
+}
+
Binary file mockups/content/images/GHOP.jpg has changed
Binary file mockups/content/images/GSOC.jpg has changed
Binary file mockups/content/images/logo-custom.gif has changed
Binary file mockups/content/images/opentriangle.gif has changed
Binary file mockups/content/images/triangle.gif has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mockups/content/js/blog.js	Mon Jul 28 20:42:10 2008 +0000
@@ -0,0 +1,76 @@
+/* Copyright 2008 the Melange authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+function BlogPreview(container) {
+  this.container_ = container;
+}
+
+BlogPreview.prototype.show = function(url, title, title_link) {
+  var feed = new google.feeds.Feed(url);
+  var preview = this;
+  feed.load(function(result) {
+    preview.render_(result, title, title_link);
+  });
+}
+
+BlogPreview.prototype.render_ = function(result, title, title_link) {
+  if (!result.feed || !result.feed.entries) return;
+  while (this.container_.firstChild) {
+    this.container_.removeChild(this.container_.firstChild);
+  }
+
+  var blog = this.createDiv_(this.container_, "blog");
+  var header = this.createElement_("h2", blog, "");
+  if (!title) {
+    title = result.feed.title;
+  }
+  if (!title_link) {
+    title_link = result.feed.link;
+  }
+  this.createLink_(header, title_link, title);
+
+  for (var i = 0; i < result.feed.entries.length; i++) {
+    var entry = result.feed.entries[i];
+    var div = this.createDiv_(blog, "entry");
+    var linkDiv = this.createDiv_(div, "title");
+    this.createLink_(linkDiv, entry.link, entry.title);
+    if (entry.author) {
+      this.createDiv_(div, "author", "Posted by " + entry.author);
+    }
+    this.createDiv_(div, "snippet", entry.contentSnippet);
+  }
+}
+
+BlogPreview.prototype.createDiv_ = function(parent, className, opt_text) {
+  return this.createElement_("div", parent, className, opt_text);
+}
+
+BlogPreview.prototype.createLink_ = function(parent, href, text) {
+  var link = this.createElement_("a", parent, "", text);
+  link.href = href;
+  return link;
+}
+
+BlogPreview.prototype.createElement_ = function(tagName, parent, className,
+                                                opt_text) {
+  var div = document.createElement(tagName);
+  div.className = className;
+  parent.appendChild(div);
+  if (opt_text) {
+    div.appendChild(document.createTextNode(opt_text));
+  }
+  return div;
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mockups/program/community/gsoc2009/gsoc2009comm.html	Mon Jul 28 20:42:10 2008 +0000
@@ -0,0 +1,416 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+ <head>
+  <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
+  <link rel="stylesheet" href="/svn/trunk/mockups/content/css/mockups.css" type="text/css"/>
+  <title>Google Summer of Code 2008</title>
+ </head>
+
+ <body>
+
+  <div id="login">
+   <a href="http://code.google.com/p/soc/issues/list">Report bugs</a> | 
+   <a href="/">Sign in</a>
+  </div>
+
+  <div id="header">
+   <div id="logo">
+<a href="/"><img src="/svn/trunk/mockups/content/images/GSOC.jpg" alt="Google Summer of Code"/></a>
+   <span title=" TODO: logo can change from year to year, program to program " class="popup">
+<small>*</small>
+   </span>
+   </div>
+
+   <div id="title">
+GSoC 2009 Community
+   </div>
+   <div id="breadcrumbs">
+    <span class="item">
+<a href="/svn/trunk/mockups/sitehome.html">Google Open Source Programs</a>
+    </span>
+&gt;
+    <span class="item">
+<a href="/svn/trunk/mockups/programs/home/gsoc2009/gsoc2009home.html">Google Summer of Code 2009</a>
+    </span>
+&gt;
+    <span class="selected">
+<a href="/svn/trunk/mockups/programs/community/gsoc2009/gsoc2009comm.html">Community</a>
+    </span>
+   </div>
+  </div>
+
+  <div id="side" dir="ltr">
+   <div id="menu">
+    <ul>
+     <li>
+<a href="/svn/trunk/mockups/sitehome.html">Google Open Source Programs</a>
+      <ul>
+       <li>
+<a href="/svn/trunk/mockups/user/profile/linkname/profile.html">User (Sign In)</a>
+       </li>
+      </ul>
+      <ul>
+       <li>
+<a href="/svn/trunk/mockups/program/home/gsoc2009/gsoc2009home.html">Google Summer of Code</a>
+        <ul>
+         <li>
+<a class="selected" href="/svn/trunk/mockups/program/community/gsoc2009/gsoc2009comm.html">Community</a>
+         </li>
+         <li>
+<a href="/svn/trunk/mockups/program/docs/gsoc2009/faqs/faqs.html">Program FAQs</a>
+         </li>
+         <li>
+<a href="/svn/trunk/mockups/program/docs/gsoc2009/tos/tos.html">Terms of Service</a>
+         </li>
+        </ul>
+       </li>
+       <li>
+<a href="/svn/trunk/mockups/program/home/ghop2008/ghop2008home.html">Google Highly Open Participation</a>
+        <ul>
+         <li>
+<a href="/svn/trunk/mockups/program/community/ghop2008/">Community</a>
+         </li>
+         <li>
+<a href="/svn/trunk/mockups/program/docs/ghop2008/faqs/">Program FAQs</a>
+         </li>
+         <li>
+<a href="/svn/trunk/mockups/program/docs/ghop2008/rules/rules.html">Contest Rules</a>
+         </li>
+        </ul>
+       </li>
+      </ul>
+     </li>
+    </ul>
+   </div>
+
+   <div id="search">
+    <form id="searchbox_015986126177484454297:pfmwlvdl42y" action="http://www.google.com/cse">
+     <input type="hidden" name="cx" value="015986126177484454297:pfmwlvdl42y" />
+     <input type="hidden" name="cof" value="FORID:0" />
+     <div class="header">
+Search Google Open Source:
+     </div>
+     <input name="q" type="text" size="20" />
+     <input type="submit" name="sa" value="Search" />
+     <br/>
+    </form>
+    <script type="text/javascript" src="http://google.com/coop/cse/brand?form=searchbox_015986126177484454297:pfmwlvdl42y">
+    </script></form>
+   </div>
+
+   <div id="badge">
+<a href="http://code.google.com/p/soc/" target="_blank">Powered by Melange</a>
+   <span title=" TODO: need a Melange logo " class="popup">
+<small>*</small>
+   </span>
+   </div>
+  </div>
+
+  <div id="body">
+   <div style="line-height: 140%;">
+<p>
+This is generic HTML that can be configured via the site administration
+interface.
+</p>
+<h2>Mentoring Organizations Participating in
+ <i>Google Summer of Code</i> 2009</h2>
+ 
+<p class="todo">
+TODO: tabbed control for browsing organizations who participated in
+this historical program, by programming language, primary area of interest,
+alphabetical, etc.  (and definitely not as ugly as this quick mockup...)
+</p>
+
+<p>
+    <table class="tabletabs">
+     <tr>
+      <td class="selectedtab">Alphabetical</td>
+      <td class="tab">Area of Interest</td>
+      <td class="tab">Programming Language</td>
+      <td class="tab">License</td>
+      <td class="notab"></td>
+     </tr>
+    </table>
+    <table class="programorgs" style="position: relative">
+     <tr>
+      <td class="triangle">
+<img src="/svn/trunk/mockups/content/images/opentriangle.gif" alt="A open"/>
+      </td>
+      <td class="letter">
+A
+      </td>
+      <td></td>
+     </tr>
+     <tr>
+      <td colspan="2"></td>
+      <td>
+       <div>
+<a rel=nofollow href="/org/about/gsoc2009/abisource/abisource.html">AbiSource</a>
+       </div>
+       <div>
+<a rel=nofollow href="/org/about/gsoc2009/adium/">Adium</a>
+       </div>
+       <div>
+<a rel=nofollow href="/org/about/gsoc2009/asf/">The Apache Software Foundation</a>
+       </div>
+       <div>
+<a rel=nofollow href="/org/about/gsoc2009/argouml/">ArgoUML</a>
+       </div>
+       <div>
+<a rel=nofollow href="/org/about/gsoc2009/atheme/">atheme.org</a>
+       </div>
+       <div>
+<a rel=nofollow href="/org/about/gsoc2009/audacity/">Audacity</a>
+       </div>
+      </td>
+     </tr>
+     <tr>
+      <td>
+<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="B closed"/>
+      </td>
+      <td>
+B
+      </td>
+      <td></td>
+     </tr>
+     <tr>
+      <td>
+<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
+      </td>
+      <td>
+C
+      </td>
+      <td></td>
+     </tr>
+     <tr>
+      <td>
+<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
+      </td>
+      <td>
+D
+      </td>
+      <td></td>
+     </tr>
+     <tr>
+      <td>
+<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
+      </td>
+      <td>
+E
+      </td>
+      <td></td>
+     </tr>
+     <tr>
+      <td>
+<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
+      </td>
+      <td>
+F
+      </td>
+      <td></td>
+     </tr>
+     <tr>
+      <td>
+<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
+      </td>
+      <td>
+G
+      </td>
+      <td></td>
+     </tr>
+     <tr>
+      <td>
+<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
+      </td>
+      <td>
+H
+      </td>
+      <td></td>
+     </tr>
+     <tr>
+      <td>
+<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
+      </td>
+      <td>
+I
+      </td>
+      <td></td>
+     </tr>
+     <tr>
+      <td>
+<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
+      </td>
+      <td>
+J
+      </td>
+      <td></td>
+     </tr>
+     <tr>
+      <td>
+<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
+      </td>
+      <td>
+K
+      </td>
+      <td></td>
+     </tr>
+     <tr>
+      <td>
+<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
+      </td>
+      <td>
+L
+      </td>
+      <td></td>
+     </tr>
+     <tr>
+      <td>
+<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
+      </td>
+      <td>
+M
+      </td>
+      <td></td>
+     </tr>
+     <tr>
+      <td>
+<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
+      </td>
+      <td>
+N
+      </td>
+      <td></td>
+     </tr>
+     <tr>
+      <td>
+<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
+      </td>
+      <td>
+O
+      </td>
+      <td></td>
+     </tr>
+     <tr>
+      <td>
+<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
+      </td>
+      <td>
+P
+      </td>
+      <td></td>
+     </tr>
+     <tr>
+      <td>
+<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
+      </td>
+      <td>
+Q
+      </td>
+      <td></td>
+     </tr>
+     <tr>
+      <td>
+<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
+      </td>
+      <td>
+R
+      </td>
+      <td></td>
+     </tr>
+     <tr>
+      <td>
+<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
+      </td>
+      <td>
+S
+      </td>
+      <td></td>
+     </tr>
+     <tr>
+      <td>
+<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
+      </td>
+      <td>
+T
+      </td>
+      <td></td>
+     </tr>
+     <tr>
+      <td>
+<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
+      </td>
+      <td>
+U
+      </td>
+      <td></td>
+     </tr>
+     <tr>
+      <td>
+<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
+      </td>
+      <td>
+V
+      </td>
+      <td></td>
+     </tr>
+     <tr>
+      <td>
+<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
+      </td>
+      <td>
+W
+      </td>
+      <td></td>
+     </tr>
+     <tr>
+      <td>
+<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
+      </td>
+      <td>
+X
+      </td>
+      <td></td>
+     </tr>
+     <tr>
+      <td>
+<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
+      </td>
+      <td>
+Y
+      </td>
+      <td></td>
+     </tr>
+     <tr>
+      <td>
+<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
+      </td>
+      <td>
+Z
+      </td>
+      <td></td>
+     </tr>
+    </table>
+</p>
+   </div>
+
+   <div id="footer" dir="ltr">
+    <div class="text">
+&copy;2008 Google -
+<a href="http://www.google.com/">Google Home</a> -
+<a href="http://www.google.com/privacy.html">Privacy Policy</a>
+    </div>
+   </div>
+  </div>
+
+  <script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
+  </script>
+
+  <script type="text/javascript">
+_uacct="UA-4291635-1"; // code.google.com site-wide tracking
+_uanchor=1;
+_uff=0;
+urchinTracker();
+  </script>
+
+ </body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mockups/program/home/ghop2008/ghop2008home.html	Mon Jul 28 20:42:10 2008 +0000
@@ -0,0 +1,159 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+ <head>
+  <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
+  <link rel="stylesheet" href="/svn/trunk/mockups/content/css/mockups.css" type="text/css"/>
+  <title>Google Highly Open Participation 2008</title>
+
+
+    <script type="text/javascript" src="http://www.google.com/jsapi"></script>
+    <script type="text/javascript" src="/svn/trunk/mockups/content/js/blog.js"></script>
+    <script type="text/javascript">
+
+    google.load("feeds", "1");
+
+    function initialize() {
+      var blog = new BlogPreview(document.getElementById("blog"));
+      blog.show("http://google-opensource.blogspot.com/feeds/posts/default/-/ghop", "Google Highly Open Participation Blog");
+    }
+    google.setOnLoadCallback(initialize);
+
+    </script>
+
+ </head>
+
+ <body>
+
+  <div id="login">
+   <a href="http://code.google.com/p/soc/issues/list">Report bugs</a> | 
+   <a href="/">Sign out</a>
+  </div>
+
+  <div id="header">
+   <div id="logo">
+<a href="/"><img src="/svn/trunk/mockups/content/images/GHOP.jpg" alt="Google Highly Open Participation"/></a>
+   <span title=" TODO: logo updated in program sponsor interface " class="popup">
+<small>*</small>
+   </span>
+   </div>
+
+   <div id="title">
+Google Highly Open Participation 2008
+   </div>
+   <div id="breadcrumbs">
+    <span class="item">
+<a href="/svn/trunk/mockups/">Google Open Source Programs</a>
+    </span>
+&gt;
+    <span class="selected">
+<a href="/svn/trunk/mockups/programs/home/ghop2008/ghop2008home.html">Google Highly Open Participation 2008</a>
+    </span>
+   </div>
+  </div>
+
+  <div id="side" dir="ltr">
+   <div id="menu">
+    <ul>
+     <li>
+<a href="/svn/trunk/mockups/sitehome.html">Google Open Source Programs</a>
+      <ul>
+       <li>
+<a href="/svn/trunk/mockups/user/profile/linkname/profile.html">User (Sign In)</a>
+       </li>
+      </ul>
+      <ul>
+       <li>
+<a href="/svn/trunk/mockups/program/home/gsoc2009/gsoc2009home.html">Google Summer of Code</a>
+        <ul>
+         <li>
+<a href="/svn/trunk/mockups/program/community/gsoc2009/gsoc2009comm.html">Community</a>
+         </li>
+         <li>
+<a href="/svn/trunk/mockups/program/docs/gsoc2009/faqs/gsoc2009faqs.html">Program FAQs</a>
+         </li>
+         <li>
+<a href="/svn/trunk/mockups/program/docs/gsoc2009/tos/gsoc2009tos.html">Terms of Service</a>
+         </li>
+        </ul>
+       </li>
+       <li>
+<a class="selected" href="/svn/trunk/mockups/program/home/ghop2008/ghop2008home.html">Google Highly Open Participation</a>
+        <ul>
+         <li>
+<a href="/svn/trunk/mockups/program/community/ghop2008/">Community</a>
+         </li>
+         <li>
+<a href="/svn/trunk/mockups/program/docs/ghop2008/faqs/">Program FAQs</a>
+         </li>
+         <li>
+<a href="/svn/trunk/mockups/program/docs/ghop2008/rules/rules.html">Contest Rules</a>
+         </li>
+        </ul>
+       </li>
+      </ul>
+     </li>
+    </ul>
+   </div>
+
+   <div id="search">
+    <form id="searchbox_015986126177484454297:pfmwlvdl42y" action="http://www.google.com/cse">
+     <input type="hidden" name="cx" value="015986126177484454297:pfmwlvdl42y" />
+     <input type="hidden" name="cof" value="FORID:0" />
+     <div class="header">
+Search Google Open Source:
+     </div>
+     <input name="q" type="text" size="20" />
+     <input type="submit" name="sa" value="Search" />
+     <br/>
+    </form>
+    <script type="text/javascript" src="http://google.com/coop/cse/brand?form=searchbox_015986126177484454297:pfmwlvdl42y">
+    </script></form>
+   </div>
+
+   <div id="badge">
+<a href="http://code.google.com/p/soc/" target="_blank">Powered by Melange</a>
+   <span title=" TODO: need a Melange logo " class="popup">
+<small>*</small>
+   </span>
+   </div>
+  </div>
+
+  <div id="body">
+   <div style="line-height: 140%;">
+<p>
+This is generic HTML that can be configured via the site administration
+interface.
+</p>
+<p>
+For a list of organizations currently participating in the Google Highly Open
+Participation Contest for 2008, please visit the
+<a href="/svn/trunk/mockups/program/community/ghop2008/">Community</a> page.
+</p>
+    <div id="blog"></div>
+<p class="todo">
+The site administration interface will provide a mechanism to select a feed to
+be displayed here.
+</p>
+   </div>
+
+   <div id="footer" dir="ltr">
+    <div class="text">
+&copy;2008 Google -
+<a href="http://www.google.com/">Google Home</a> -
+<a href="http://www.google.com/privacy.html">Privacy Policy</a>
+    </div>
+   </div>
+  </div>
+
+  <script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
+  </script>
+
+  <script type="text/javascript">
+_uacct="UA-4291635-1"; // code.google.com site-wide tracking
+_uanchor=1;
+_uff=0;
+urchinTracker();
+  </script>
+
+ </body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mockups/program/home/gsoc2009/gsoc2009home.html	Mon Jul 28 20:42:10 2008 +0000
@@ -0,0 +1,159 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+ <head>
+  <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
+  <link rel="stylesheet" href="/svn/trunk/mockups/content/css/mockups.css" type="text/css"/>
+  <title>Google Summer of Code 2009</title>
+
+
+    <script type="text/javascript" src="http://www.google.com/jsapi"></script>
+    <script type="text/javascript" src="/svn/trunk/mockups/content/js/blog.js"></script>
+    <script type="text/javascript">
+
+    google.load("feeds", "1");
+
+    function initialize() {
+      var blog = new BlogPreview(document.getElementById("blog"));
+      blog.show("http://google-opensource.blogspot.com/feeds/posts/default/-/gsoc", "Google Summer of Code Blog");
+    }
+    google.setOnLoadCallback(initialize);
+
+    </script>
+
+ </head>
+
+ <body>
+
+  <div id="login">
+   <a href="http://code.google.com/p/soc/issues/list">Report bugs</a> | 
+   <a href="/">Sign in</a>
+  </div>
+
+  <div id="header">
+   <div id="logo">
+<a href="/"><img src="/svn/trunk/mockups/content/images/GSOC.jpg" alt="Google Summer of Code"/></a>
+   <span title=" TODO: logo updated in program sponsor interface " class="popup">
+<small>*</small>
+   </span>
+   </div>
+
+   <div id="title">
+Google Summer of Code 2009
+   </div>
+   <div id="breadcrumbs">
+    <span class="item">
+<a href="/svn/trunk/mockups/sitehome.html">Google Open Source Programs</a>
+    </span>
+&gt;
+    <span class="selected">
+<a href="/svn/trunk/mockups/programs/home/gsoc2009/gsoc2009home.html">Google Summer of Code 2009</a>
+    </span>
+   </div>
+  </div>
+
+  <div id="side" dir="ltr">
+   <div id="menu">
+    <ul>
+     <li>
+<a href="/svn/trunk/mockups/sitehome.html">Google Open Source Programs</a>
+      <ul>
+       <li>
+<a href="/svn/trunk/mockups/user/profile/linkname/profile.html">User (Sign In)</a>
+       </li>
+      </ul>
+      <ul>
+       <li>
+<a class="selected" href="/svn/trunk/mockups/program/home/gsoc2009/gsoc2009home.html">Google Summer of Code</a>
+        <ul>
+         <li>
+<a href="/svn/trunk/mockups/program/community/gsoc2009/gsoc2009comm.html">Community</a>
+         </li>
+         <li>
+<a href="/svn/trunk/mockups/program/docs/gsoc2009/faqs/faqs.html">Program FAQs</a>
+         </li>
+         <li>
+<a href="/svn/trunk/mockups/program/docs/gsoc2009/tos/tos.html">Terms of Service</a>
+         </li>
+        </ul>
+       </li>
+       <li>
+<a href="/svn/trunk/mockups/program/home/ghop2008/ghop2008home.html">Google Highly Open Participation</a>
+        <ul>
+         <li>
+<a href="/svn/trunk/mockups/program/community/ghop2008/">Community</a>
+         </li>
+         <li>
+<a href="/svn/trunk/mockups/program/docs/ghop2008/faqs/">Program FAQs</a>
+         </li>
+         <li>
+<a href="/svn/trunk/mockups/program/docs/ghop2008/rules/rules.html">Contest Rules</a>
+         </li>
+        </ul>
+       </li>
+      </ul>
+     </li>
+    </ul>
+   </div>
+
+   <div id="search">
+    <form id="searchbox_015986126177484454297:pfmwlvdl42y" action="http://www.google.com/cse">
+     <input type="hidden" name="cx" value="015986126177484454297:pfmwlvdl42y" />
+     <input type="hidden" name="cof" value="FORID:0" />
+     <div class="header">
+Search Google Open Source:
+     </div>
+     <input name="q" type="text" size="20" />
+     <input type="submit" name="sa" value="Search" />
+     <br/>
+    </form>
+    <script type="text/javascript" src="http://google.com/coop/cse/brand?form=searchbox_015986126177484454297:pfmwlvdl42y">
+    </script></form>
+   </div>
+
+   <div id="badge">
+<a href="http://code.google.com/p/soc/" target="_blank">Powered by Melange</a>
+   <span title=" TODO: need a Melange logo " class="popup">
+<small>*</small>
+   </span>
+   </div>
+  </div>
+
+  <div id="body">
+   <div style="line-height: 140%;">
+<p>
+This is generic HTML that can be configured via the site administration
+interface.
+<p>
+For a list of organizations currently participating in the Google Summer of
+Code for 2009, please visit the
+<a href="/svn/trunk/mockups/program/community/gsoc2009/gsoc2009comm.html">Community</a> page.
+</p>
+</p>
+    <div id="blog"></div>
+<p class="todo">
+The site administration interface will provide a mechanism to select a feed to
+be displayed here.
+</p>
+   </div>
+
+   <div id="footer" dir="ltr">
+    <div class="text">
+&copy;2008 Google -
+<a href="http://www.google.com/">Google Home</a> -
+<a href="http://www.google.com/privacy.html">Privacy Policy</a>
+    </div>
+   </div>
+  </div>
+
+  <script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
+  </script>
+
+  <script type="text/javascript">
+_uacct="UA-4291635-1"; // code.google.com site-wide tracking
+_uanchor=1;
+_uff=0;
+urchinTracker();
+  </script>
+
+ </body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mockups/sitehome.html	Mon Jul 28 20:42:10 2008 +0000
@@ -0,0 +1,159 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+ <head>
+  <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
+  <link rel="stylesheet" href="/svn/trunk/mockups/content/css/mockups.css" type="text/css"/>
+  <title>Google Open Source Programs</title>
+
+
+    <script type="text/javascript" src="http://www.google.com/jsapi"></script>
+    <script type="text/javascript" src="/svn/trunk/mockups/content/js/blog.js"></script>
+    <script type="text/javascript">
+
+    google.load("feeds", "1");
+
+    function initialize() {
+      var blog = new BlogPreview(document.getElementById("blog"));
+      blog.show("http://google-opensource.blogspot.com/feeds/posts/default");
+    }
+    google.setOnLoadCallback(initialize);
+
+    </script>
+
+ </head>
+
+ <body>
+
+  <div id="login">
+   <a href="http://code.google.com/p/soc/issues/list">Report bugs</a> | 
+   <a href="/">Sign in</a>
+  </div>
+
+  <div id="header">
+   <div id="logo">
+<a href="/"><img src="/svn/trunk/mockups/content/images/logo-custom.gif" alt="Google Open Source Programs"/></a>
+   <span title=" TODO: logo updated in site sponsor interface " class="popup">
+<small>*</small>
+   </span>
+   </div>
+
+   <div id="title">
+Google Open Source Programs
+   </div>
+  </div>
+
+  <div id="side" dir="ltr">
+   <div id="menu">
+    <ul>
+     <li>
+<a class="selected" href="/svn/trunk/mockups/sitehome.html">Google Open Source Programs</a>
+      <ul>
+       <li>
+<a href="/svn/trunk/mockups/user/profile/linkname/profile.html">User (Sign In)</a>
+   <span title=" No Profile or Roles sidebar menu items until user signs in " class="popup">
+<small>*</small>
+   </span>
+
+       </li>
+      </ul>
+      <ul>
+       <li>
+<a href="/svn/trunk/mockups/program/home/gsoc2009/gsoc2009home.html">Google Summer of Code</a>
+        <ul>
+         <li>
+<a href="/svn/trunk/mockups/program/community/gsoc2009/gsoc2009comm.html">Community</a>
+         </li>
+         <li>
+<a href="/svn/trunk/mockups/program/docs/faqs/gsoc2009/gsoc2009faq.html">Program FAQs</a>
+         </li>
+         <li>
+<a href="/svn/trunk/mockups/program/docs/tos/gsoc2009/gsoc2009tos.html">Terms of Service</a>
+         </li>
+        </ul>
+       </li>
+       <li>
+<a href="/svn/trunk/mockups/program/home/ghop2008/ghop2008home.html">Google Highly Open Participation</a>
+        <ul>
+         <li>
+<a href="/svn/trunk/mockups/program/community/ghop2008/">Community</a>
+         </li>
+         <li>
+<a href="/svn/trunk/mockups/program/docs/faqs/ghop2008/">Program FAQs</a>
+         </li>
+         <li>
+<a href="/svn/trunk/mockups/program/docs/rules/ghop2008/ghop2008rules.html">Contest Rules</a>
+         </li>
+        </ul>
+       </li>
+      </ul>
+     </li>
+    </ul>
+   </div>
+
+   <div id="search">
+    <form id="searchbox_015986126177484454297:pfmwlvdl42y" action="http://www.google.com/cse">
+     <input type="hidden" name="cx" value="015986126177484454297:pfmwlvdl42y" />
+     <input type="hidden" name="cof" value="FORID:0" />
+     <div class="header">
+Search Google Open Source:
+     </div>
+     <input name="q" type="text" size="20" />
+     <input type="submit" name="sa" value="Search" />
+     <br/>
+    </form>
+    <script type="text/javascript" src="http://google.com/coop/cse/brand?form=searchbox_015986126177484454297:pfmwlvdl42y">
+    </script></form>
+   </div>
+
+   <div id="badge">
+<a href="http://code.google.com/p/soc/" target="_blank">Powered by Melange</a>
+   <span title=" TODO: need a Melange logo " class="popup">
+<small>*</small>
+   </span>
+   </div>
+  </div>
+
+  <div id="body">
+   <div style="line-height: 140%;">
+<p class="todo">
+This is generic HTML that can be configured via the site administration
+interface.  It is unclear if the site admin can be trusted and allowed to enter
+any arbitrary HTML (more flexible and powerful) or if only a whitelist of "safe"
+HTML tags should be permitted (to prevent XSS, etc.).
+(<a href="http://www.feedparser.org/"><code>feedparser</code></a> is useful for
+this and is written in Python, should whitelisting be necessary.)
+</p>
+<p>
+Welcome to Google Open Source Programs, the home of
+<a href="/svn/trunk/mockups/program/home/gsoc2009/gsoc2009home.html">Google Summer of Code</a>
+and the
+<a href="/svn/trunk/mockups/program/home/ghop2008/ghop2008home.html">Google Highly Open Participation</a> contest.
+</p>
+<p class="todo">
+The site administration interface will provide a mechanism to select a feed to
+be displayed here.
+</p>
+    <div id="blog"></div>
+   </div>
+
+   <div id="footer" dir="ltr">
+    <div class="text">
+&copy;2008 Google -
+<a href="http://www.google.com/">Google Home</a> -
+<a href="http://www.google.com/privacy.html">Privacy Policy</a>
+    </div>
+   </div>
+  </div>
+
+  <script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
+  </script>
+
+  <script type="text/javascript">
+_uacct="UA-4291635-1"; // code.google.com site-wide tracking
+_uanchor=1;
+_uff=0;
+urchinTracker();
+  </script>
+
+ </body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mockups/user/profile/linkname/profile.html	Mon Jul 28 20:42:10 2008 +0000
@@ -0,0 +1,239 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+ <head>
+  <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
+  <link rel="stylesheet" href="/svn/trunk/mockups/content/css/mockups.css" type="text/css"/>
+  <title>User Profile</title>
+ </head>
+
+ <body>
+
+  <div id="login">
+   <b>logged.in.user@gmail.com</b>
+   <span title=" Google Account displayed once user signs in " class="popup">
+<small>*</small>
+   </span>
+   | <a href="http://code.google.com/p/soc/issues/list">Report bugs</a> | 
+   <a href="/">Sign out</a>
+  </div>
+
+  <div id="header">
+   <div id="logo">
+<a href="/"><img src="/svn/trunk/mockups/content/images/logo-custom.gif" alt="Google Open Source Programs"/></a>
+   <span title=" TODO: logo updated in site sponsor interface " class="popup">
+<small>*</small>
+   </span>
+   </div>
+
+   <div id="title">
+User Profile for <i>Givenname Surname</i>
+   <span title=" Display name not shown until entered and saved the first time " class="popup">
+<small>*</small>
+   </span>
+<a href="mailto:logged.in.user@gmail.com">&lt;logged.in.user@gmail.com&gt;</a>
+   </div>
+   <div id="breadcrumbs">
+    <span class="item">
+<a href="/svn/trunk/mockups/sitehome.html">Google Open Source Programs</a>
+    </span>
+&gt;
+    <span class="item">
+<a href="/svn/trunk/mockups/user/profile/linkname/profile.html">User (Sign in)</a>
+    </span>
+&gt;
+    <span class="item">
+<a class="selected" href="/svn/trunk/mockups/user/profile/linkname/profile.html">Profile</a>
+    </span>
+   </div>
+  </div>
+
+  <div id="side" dir="ltr">
+   <div id="menu">
+    <ul>
+     <li>
+<a href="/svn/trunk/mockups/sitehome.html">Google Open Source Programs</a>
+      <ul>
+       <li>
+<a href="/svn/trunk/mockups/user/profile/linkname/profile.html">User (Sign out)</a>
+   <span title=" changes to (Sign out) after user signs in " class="popup">
+<small>*</small>
+   </span>
+        <ul>
+         <li>
+<a class="selected" href="/svn/trunk/mockups/user/profile/linkname/profile.html">Profile</a>
+   <span title=" Profile sidebar menu item present after user signs in " class="popup">
+<small>*</small>
+   </span>
+         </li>
+         <li>
+<a href="/svn/trunk/mockups/user/roles/linkname/roles.html">Roles</a>
+   <span title=" Roles sidebar menu item present after user signs in " class="popup">
+<small>*</small>
+   </span>
+         </li>
+        </ul>
+       </li>
+      </ul>
+      <ul>
+       <li>
+<a href="/svn/trunk/mockups/program/home/gsoc2009/gsoc2009home.html">Google Summer of Code</a>
+        <ul>
+         <li>
+<a href="/svn/trunk/mockups/program/community/gsoc2009/gsoc2009comm.html">Community</a>
+         </li>
+         <li>
+<a href="/svn/trunk/mockups/program/docs/faqs/gsoc2009/gsoc2009faqs.html">Program FAQs</a>
+         </li>
+         <li>
+<a href="/svn/trunk/mockups/program/docs/tos/gsoc2009/gsoc2009tos.html">Terms of Service</a>
+         </li>
+        </ul>
+       </li>
+       <li>
+<a href="/svn/trunk/mockups/program/home/ghop2008/ghop2008home.html">Google Highly Open Participation</a>
+        <ul>
+         <li>
+<a href="/svn/trunk/mockups/program/community/ghop2008/">Community</a>
+         </li>
+         <li>
+<a href="/svn/trunk/mockups/program/docs/faqs/ghop2008/">Program FAQs</a>
+         </li>
+         <li>
+<a href="/svn/trunk/mockups/program/docs/rules/ghop2008/ghop2008rules.html">Contest Rules</a>
+         </li>
+        </ul>
+       </li>
+      </ul>
+     </li>
+    </ul>
+   </div>
+
+   <div id="search">
+    <form id="searchbox_015986126177484454297:pfmwlvdl42y" action="http://www.google.com/cse">
+     <input type="hidden" name="cx" value="015986126177484454297:pfmwlvdl42y" />
+     <input type="hidden" name="cof" value="FORID:0" />
+     <div class="header">
+Search Google Open Source:
+     </div>
+     <input name="q" type="text" size="20" />
+     <input type="submit" name="sa" value="Search" />
+     <br/>
+    </form>
+    <script type="text/javascript" src="http://google.com/coop/cse/brand?form=searchbox_015986126177484454297:pfmwlvdl42y">
+    </script></form>
+   </div>
+
+   <div id="badge">
+<a href="http://code.google.com/p/soc/" target="_blank">Powered by Melange</a>
+   <span title=" TODO: need a Melange logo " class="popup">
+<small>*</small>
+   </span>
+   </div>
+  </div>
+
+  <div id="body">
+   <div style="line-height: 140%;">
+<p class="todo">
+This is the landing page after a user signs in using the
+<a href="http://code.google.com/appengine/docs/users/loginurls.html">Google
+Account login facility provided by Google App Engine</a>.
+</p>
+
+Please use this form to set basic site-wide settings for your participation
+in Google Open Source Programs.
+   </div>
+<br>
+   <div style="line-height: 140%;">
+    <form method="post" action="profile_save.html" name="user_profile">
+     <table class="profile">
+      <tbody>
+       <tr>
+        <th>
+Display name:
+        </th>
+        <td>
+<input size="40" name="displayname" value="Givenname Surname">
+        </td>
+        <td class="explain">
+Human-readable name displayed throughout the site for this user.  UTF-8
+characters are permitted.
+        </td>
+       </tr>
+       <tr>
+        <th class="error">
+Linkname:
+        </th>
+        <td class="error_outline">
+<input size="40" name="linkname" value="logged_dot_in_dot_user_at_gmail_dot_com">
+<br>
+Please select another linkname: <i>(list of potential error messages)</i>
+         <ul>
+          <li>
+<i>logged_dot_in_dot_user_at_gmail_dot_com</i> is already in use.
+          </li>
+          <li>
+<i>logged_dot_in_dot_user_at_gmail_dot_com</i> is too long.
+          </li>
+          <li>
+<i>logged_dot_in_dot_user_at_gmail_dot_com</i> contains invalid characters.
+          </li>
+          <li>
+Etc.
+          </li>
+         </ul>
+        </td>
+        <td class="explain">
+Short nickname, used in site URLs referring to this user's content.  This
+linkname is must only contain alphanumeric <code>[A-Za-z0-9]</code>
+characters or the underscore <code>_</code> (no spaces or other punctuation).
+Also, it must be unique.  If some other user is already using a given linkname,
+it will be unavailable and a different linkname will need to be selected.
+        </td>
+       </tr>
+       <tr>
+        <td colspan="3">
+<b><i>TODO</i></b>: site-wide privacy settings go here...
+        </td>
+       </tr>
+       <tr>
+        <td colspan="3">
+ <input type="checkbox" name="agreetoterms" value="agree" checked>
+ I have read and agree to the <i>Google Open Source Programs</i>
+ <a href="/svn/trunk/mockups/site/docs/tos/tos.html">Terms of Service</a>.
+        </td>
+       </tr>
+       <tr>
+        <td></td>
+        <td class="submit">
+<br>
+<input type="submit" name="save_changes" value="Save Changes" />
+<br>
+        </td>
+        <td></td>
+       </tr>
+      </tbody>
+     </table>
+    </form>
+   </div>
+ </div>
+
+  <div id="footer" dir="ltr">
+   <div class="text">
+&copy;2008 Google -
+<a href="http://www.google.com/">Google Home</a> -
+<a href="http://www.google.com/privacy.html">Privacy Policy</a>
+   </div>
+  </div>
+
+  <script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
+  </script>
+
+  <script type="text/javascript">
+_uacct="UA-4291635-1"; // code.google.com site-wide tracking
+_uanchor=1;
+_uff=0;
+urchinTracker();
+  </script>
+
+ </body>
+</html>