Index: /trunk/WebsiteGalleryContrib/data/_WebsiteGalleryContrib/WebsiteViewTemplate.txt
===================================================================
--- /trunk/WebsiteGalleryContrib/data/_WebsiteGalleryContrib/WebsiteViewTemplate.txt	(revision 6947)
+++ /trunk/WebsiteGalleryContrib/data/_WebsiteGalleryContrib/WebsiteViewTemplate.txt	(revision 6947)
@@ -0,0 +1,38 @@
+%META:TOPICINFO{author="WillNorris" date="1249544543" format="1.1" version="1.2"}%
+%TMPL:INCLUDE{"view"}%
+
+%TMPL:DEF{"content"}%\
+%JQREQUIRE{"foswiki"}%
+<style>
+td { vertical-align:top; }
+.label { background-color:#330000; color:#eeeeee; }
+.url { font-size:150%; }
+.location { font-style:oblique; }
+</style>
+<span class="url"><a target='_blank' href='%FORMFIELD{"WebsiteURL"}%'>%FORMFIELD{"WebsiteURL"}%</a></span><br/>
+<span class="location"> %FORMFIELD{"Location"}%</span><br/>
+<img id="the_main_image" width="225" height="250" src="%PUBURL%/%WEB%/%TOPIC%/%FORMFIELD{"Picture"}%" style="float:left; padding-right:1em;"/>\
+<p>%FORMFIELD{"Description"}%</p>
+%IMAGE{"clear"}%
+<p/>
+<hr/>
+%ATTACHMENTLIST{web="%BASEWEB%" topic="%BASETOPIC%" sort="$fileDate" sortorder="descending" format="<img onclick=$quot$('#the_main_image').attr('src', '$fileUrl')$quot src='$fileUrl' width='74' height='68' />"}%
+<a href='?template=PersonalInfoPictureView'>change picture</a>
+
+%INCLUDE{"WebsiteForm" section="render-map-js"}%
+<div id="map" style="width:310px; height:300px; float:left; margin-right:10px;"></div>
+<div id="description"></div>
+%IMAGE{"clear"}%
+<script>
+window.onload = function() {
+	      $.getScript("%SCRIPTURL{"view"}%/%WEB%/WebsiteGeoRenderAjax?skin=text;THETOPIC=%BASETOPIC%");
+}
+</script>
+%TMPL:END%
+
+%TMPL:DEF{"form"}%%TMPL:END%
+%TMPL:DEF{"formtop"}%%TMPL:END%
+%TMPL:DEF{"formbottom"}%%TMPL:END%
+
+%TMPL:DEF{"attachments"}%%TMPL:END%
+
Index: /trunk/WebsiteGalleryContrib/data/_WebsiteGalleryContrib/WebsitesGeo.txt
===================================================================
--- /trunk/WebsiteGalleryContrib/data/_WebsiteGalleryContrib/WebsitesGeo.txt	(revision 6947)
+++ /trunk/WebsiteGalleryContrib/data/_WebsiteGalleryContrib/WebsitesGeo.txt	(revision 6947)
@@ -0,0 +1,23 @@
+%INCLUDE{"WebsiteForm" section="new-website-button"}%
+%STARTINCLUDE%
+%INCLUDE{"WebsiteForm" section="render-map-js"}%
+<div id="map" style="width:310px; height:300px; float:left; margin-right:10px;"></div>
+<div id="description"></div>
+%IMAGE{"clear"}%
+<script>
+var idxWebsite = 0;
+var websites = [];
+websites = '%CALC{"$LISTSHUFFLE(%SEARCH{ nonoise="on" type="query" "WebsiteForm" format="$topic" separator="," }%)"}%'.split(/,\s+/);
+function geoRender(site,callback) { $.getScript( "%SCRIPTURL{"view"}%/%WEB%/WebsiteGeoRenderAjax?THETOPIC=" + site, callback ); }
+function nextSite() {
+	setTimeout( function() {
+		++idxWebsite;  if ( idxWebsite >= websites.length ) { idxWebsite=0; }
+//		alert(idxWebsite+': '+websites[idxWebsite]);
+		geoRender( websites[idxWebsite], nextSite );
+	}, 6000 );
+}
+window.onload = function() {
+      geoRender( websites[0], nextSite );
+}
+</script>
+%STOPINCLUDE%
Index: /trunk/WebsiteGalleryContrib/data/_WebsiteGalleryContrib/WebsiteGeoRenderAjax.txt
===================================================================
--- /trunk/WebsiteGalleryContrib/data/_WebsiteGalleryContrib/WebsiteGeoRenderAjax.txt	(revision 6947)
+++ /trunk/WebsiteGalleryContrib/data/_WebsiteGalleryContrib/WebsiteGeoRenderAjax.txt	(revision 6947)
@@ -0,0 +1,2 @@
+%INCLUDE{"WebsiteForm" section="render-map" THETOPIC="%URLPARAM{"THETOPIC"}%"}%
+%META:PREFERENCE{name="SKIN" title="SKIN" type="Set" value="text"}%
Index: /trunk/WebsiteGalleryContrib/data/_WebsiteGalleryContrib/WebsitesList.txt
===================================================================
--- /trunk/WebsiteGalleryContrib/data/_WebsiteGalleryContrib/WebsitesList.txt	(revision 6947)
+++ /trunk/WebsiteGalleryContrib/data/_WebsiteGalleryContrib/WebsitesList.txt	(revision 6947)
@@ -0,0 +1,39 @@
+%INCLUDE{"WebsiteForm" section="new-website-button"}%
+%STARTINCLUDE%
+<style>
+.even {
+            background:#3355aa;
+}
+.even:hover, .odd:hover {
+	     cursor:pointer;
+}
+.even:hover {
+            background:#3355ff;
+	    color:#dddddd;
+}
+.odd {
+            background:transparent;
+}
+.odd:hover {
+            color:#112255;
+	    background:#ddddee;
+}
+td { padding:0.5em; }
+</style>
+<table class="striped">
+%SEARCH{ nonoise="on" type="query"
+"WebsiteForm"
+format="$percntINCLUDE{$quotWebsiteForm$quot section=$quotrender-list$quot THETOPIC=$quot$topic$quot}$percnt"
+order="created"
+reverse="on"
+}%
+</table>
+<p/>
+<script>
+$(document).ready(function() {
+	$('.striped tr:even').addClass('even');
+	$('.striped tr:odd').addClass('odd');
+});
+</script>
+%STOPINCLUDE%
+%INCLUDE{"WebsiteForm" section="new-website-button"}%
Index: /trunk/WebsiteGalleryContrib/data/_WebsiteGalleryContrib/PersonalInfoPictureViewTemplate.txt
===================================================================
--- /trunk/WebsiteGalleryContrib/data/_WebsiteGalleryContrib/PersonalInfoPictureViewTemplate.txt	(revision 6947)
+++ /trunk/WebsiteGalleryContrib/data/_WebsiteGalleryContrib/PersonalInfoPictureViewTemplate.txt	(revision 6947)
@@ -0,0 +1,84 @@
+%META:TOPICINFO{author="ProjectContributor" date="1166089765" format="1.1" version="1.1"}%
+%TMPL:INCLUDE{"foswiki"}%
+%TMPL:INCLUDE{"attachtables"}%
+
+%TMPL:DEF{"logo"}%%TMPL:END%
+%TMPL:DEF{"titleaction"}%%MAKETEXT{"(set personal picture)"}% %TMPL:END%
+
+
+%{ Header for topic attachment table }%
+%TMPL:DEF{ATTACH:files:header}%%TMPL:P{"formstart"}%
+<div class="pIPictures">
+<div class="foswikiFormSteps">%TMPL:END%
+
+%{ Header for table at top of attach screen }%
+%TMPL:DEF{ATTACH:files:header:A}%%TMPL:P{ATTACH:files:header}%%TMPL:END%
+
+%{ Row for table at top of attach screen }%
+%TMPL:DEF{ATTACH:files:row:A}%%TMPL:P{ATTACH:files:row(basic)}%%TMPL:END%
+
+%{ Footer for table at top of attach screen }%
+%TMPL:DEF{ATTACH:files:footer:A}%%TMPL:P{ATTACH:files:footer}%%TMPL:END%
+
+%{ A basic row definition, for attachment table and attach screen }%
+%TMPL:DEF{ATTACH:files:row(basic)}%<div class="foswikiFormStep genericFileType fileType%A_EXT%">
+<input type="radio" class="foswikiRadioButton" id="<nop>Picture%A_FILE%" name="Picture" value="%A_FILE%" %IF{" '%FORMFIELD{"Picture" topic="%BASEWEB%.%BASETOPIC%"}%' = '%A_FILE%' " then="checked=\"checked\"" else=""}% />&nbsp;<span class="foswikiImage">%INCLUDE{"PersonalInfoLayoutModules" section="image" imgName="%A_FILE%" imgWeb="%BASEWEB%" imgTopic="%BASETOPIC%" imgWidth="120"}%</span><span class="foswikiSmallish foswikiGrayText userPictureActions">%A_FILE% <a href="%SCRIPTURLPATH{"rename"}%/%WEB%/%TOPIC%?template=PersonalInfoPictureDeleteView&attachment=%ENCODE{"%A_FILE%"}%" rel='nofollow'>delete</a></span></div>%TMPL:END%
+
+%{ Footer for topic attachment table }%
+%TMPL:DEF{ATTACH:files:footer}%</div><!--/foswikiFormSteps--></div><!--/pIPictures-->
+%TMPL:P{"topicaction"}%
+%TMPL:P{"formend"}%%TMPL:END%
+
+
+%TMPL:DEF{"topicactionbuttons"}%<input type="submit" class="foswikiSubmit" value='%MAKETEXT{"Set selected as my picture"}%' /> %MAKETEXT{"or"}% %TMPL:P{"canceltopicaction"}%%TMPL:END%
+
+%TMPL:DEF{"pagetitle"}%%MAKETEXT{"Set your personal picture"}%%TMPL:END%
+
+%TMPL:DEF{"uploadnew"}%<div class="piUploadNew foswikiUnvisited"><a href="%SCRIPTURL{view}%/%BASEWEB%/%BASETOPIC%?template=PersonalInfoPictureUploadView">%MAKETEXT{"Upload a new one"}%</a></div><!--/piUploadNew-->%TMPL:END%
+
+
+
+%TMPL:DEF{"picturelist"}%%TMPL:P{"uploadnew"}%%META{"attachments" all="on" template="%TEMPLATE%"}%%TMPL:END%
+
+
+
+%TMPL:DEF{"form"}%%TMPL:END%
+%TMPL:DEF{"attachments"}%%TMPL:END%
+
+
+
+%TMPL:DEF{"formstart"}%<form method="post" action="%SCRIPTURL{save}%/%BASEWEB%/%BASETOPIC%" enctype="application/x-www-form-urlencoded" name="userpicture" id="userpicture">
+<input type="hidden" name="action_quietsave" value="1" />
+<input type="hidden" name="template" value="%URLPARAM{"template"}%" />%TMPL:END%
+
+%TMPL:DEF{"formend"}%</form>%TMPL:END%
+
+
+
+%TMPL:DEF{"templatestyle"}%<style type="text/css" media="all">
+.pIPictures .genericFileType {display:none;}
+.pIPictures .fileTypepng,
+.pIPictures .fileTypePNG,
+.pIPictures .fileTypegif,
+.pIPictures .fileTypeGIF,
+.pIPictures .fileTypejpg,
+.pIPictures .fileTypeJPG,
+.pIPictures .fileTypejpeg,
+.pIPictures .fileTypeJPEG {display:block;}
+.pIPictures .userPictureActions {margin:0 0 0 1em;}
+.piUploadNew {margin:1em 0; text-align:center;}
+.piUploadNew a {font-weight:bold;}
+.foswikiImage img {vertical-align:middle;}
+.imageFloat {display:inline;}
+</style>
+%TMPL:END%
+
+
+%TMPL:DEF{"content"}%
+<style>
+#beta, #gamma {
+       display:none;
+}
+</style>
+%TMPL:P{"picturelist"}%\
+%TMPL:END%
Index: /trunk/WebsiteGalleryContrib/data/_WebsiteGalleryContrib/WebsiteTopicEditTemplate.txt
===================================================================
--- /trunk/WebsiteGalleryContrib/data/_WebsiteGalleryContrib/WebsiteTopicEditTemplate.txt	(revision 6947)
+++ /trunk/WebsiteGalleryContrib/data/_WebsiteGalleryContrib/WebsiteTopicEditTemplate.txt	(revision 6947)
@@ -0,0 +1,5 @@
+<!--
+   * Set COMMENT_TOPIC = %BASEWEB%.%BASETOPIC%Comments
+-->
+%META:PREFERENCE{name="VIEW_TEMPLATE" title="VIEW_TEMPLATE" type="Set" value="WebsiteView"}%
+%META:PREFERENCE{name="EDIT_TEMPLATE" title="EDIT_TEMPLATE" type="Set" value="WebsiteEdit"}%
Index: /trunk/WebsiteGalleryContrib/data/_WebsiteGalleryContrib/SampleWebsite.txt
===================================================================
--- /trunk/WebsiteGalleryContrib/data/_WebsiteGalleryContrib/SampleWebsite.txt	(revision 6947)
+++ /trunk/WebsiteGalleryContrib/data/_WebsiteGalleryContrib/SampleWebsite.txt	(revision 6947)
@@ -0,0 +1,19 @@
+%META:TOPICINFO{author="WillNorris" date="1249851654" format="1.1" reprev="1.3" version="1.3"}%
+<!--
+   * Set COMMENT_TOPIC = %BASEWEB%.%BASETOPIC%Comments
+-->
+
+
+%META:FORM{name="WebsiteForm"}%
+%META:FIELD{name="WebsiteURL" attributes="" title="Website URL" value="http://librett.org/"}%
+%META:FIELD{name="Organization" attributes="" title="Organization" value=""}%
+%META:FIELD{name="Description" attributes="" title="Description" value="Sed volutpat metus ut diam vehicula semper? In pulvinar purus sed sapien tincidunt scelerisque. Donec egestas urna quis nulla venenatis placerat. Donec vehicula lacus sed massa semper sed ornare nisl pretium? Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere posuere."}%
+%META:FIELD{name="Location" attributes="M" title="Location" value="Guadalajara, Jalisco, Mexico"}%
+%META:FIELD{name="Latitude" attributes="M" title="Latitude" value="20.6667"}%
+%META:FIELD{name="Longitude" attributes="M" title="Longitude" value="-103.3333"}%
+%META:FIELD{name="Picture" attributes="H" title="Picture" value="lighted.jpg"}%
+%META:FILEATTACHMENT{name="loopita-chaise-1.jpg" attachment="loopita-chaise-1.jpg" attr="" author="WillNorris" comment="" date="1249787057" path="loopita-chaise-1.jpg" size="18341" version="1"}%
+%META:FILEATTACHMENT{name="chair1.jpg" attachment="chair1.jpg" attr="" author="WillNorris" comment="" date="1249787074" path="chair1.jpg" size="63070" version="1"}%
+%META:FILEATTACHMENT{name="lighted.jpg" attachment="lighted.jpg" attr="h" author="WillNorris" comment="" date="1249851264" path="via-lattea-glowing-air-filled-furniture-1.jpg" size="16117" version="1"}%
+%META:PREFERENCE{name="VIEW_TEMPLATE" title="VIEW_TEMPLATE" type="Set" value="WebsiteView"}%
+%META:PREFERENCE{name="EDIT_TEMPLATE" title="EDIT_TEMPLATE" type="Set" value="WebsiteEdit"}%
Index: /trunk/WebsiteGalleryContrib/data/_WebsiteGalleryContrib/WebsiteEditTemplate.txt
===================================================================
--- /trunk/WebsiteGalleryContrib/data/_WebsiteGalleryContrib/WebsiteEditTemplate.txt	(revision 6947)
+++ /trunk/WebsiteGalleryContrib/data/_WebsiteGalleryContrib/WebsiteEditTemplate.txt	(revision 6947)
@@ -0,0 +1,18 @@
+%TMPL:INCLUDE{"editform"}%
+
+%TMPL:DEF{"content"}%\
+<style>
+table td { vertical-align:top; }
+ul { list-style:none; margin-left:1em; }
+ul li { padding:0.5em; }
+</style>
+<table><tr><td>\
+%TMPL:P{"formstart"}%\
+%TMPL:P{"formbottom"}%\
+%TMPL:P{"topicinfo"}%\
+<div class="foswikiHidden"><input type="hidden" id="topic" name="text" value="%TEXT%" /></div>\
+%TMPL:P{"formend"}%\
+</td><td><ul>
+%ATTACHMENTLIST{web="%BASEWEB%" topic="%BASETOPIC%" format="<li><img src='$fileUrl' width='74' height='68' /></li>"}%\
+</ul></td></tr></table>\
+%TMPL:END%
Index: /trunk/WebsiteGalleryContrib/data/_WebsiteGalleryContrib/PersonalInfoPictureDeleteViewTemplate.txt
===================================================================
--- /trunk/WebsiteGalleryContrib/data/_WebsiteGalleryContrib/PersonalInfoPictureDeleteViewTemplate.txt	(revision 6947)
+++ /trunk/WebsiteGalleryContrib/data/_WebsiteGalleryContrib/PersonalInfoPictureDeleteViewTemplate.txt	(revision 6947)
@@ -0,0 +1,34 @@
+%META:TOPICINFO{author="ProjectContributor" date="1166089765" format="1.1" version="1.1"}%
+%{"View template with a stripped down attach template from pattern skin to show the upload option only. Attachments will be automatically hidden. After uploading the user will be redirected to PersonalInfoPictureViewTemplate."}%
+%TMPL:INCLUDE{"PersonalInfoPictureView"}%
+
+
+%TMPL:DEF{"pagetitle"}%%MAKETEXT{"Delete picture"}%%TMPL:END%
+
+
+%TMPL:DEF{"titleaction"}%%MAKETEXT{"(delete picture)"}%%TMPL:END%
+
+
+%TMPL:DEF{"topicactionbuttons"}%<input type="submit" class="foswikiSubmit" value=' %MAKETEXT{"Delete this picture"}% ' /> %MAKETEXT{"or"}% <a href="%SCRIPTURL{view}%/%WEB%/%TOPIC%?template=PersonalInfoPictureView">%MAKETEXT{"Cancel"}%</a>%TMPL:END%
+
+
+%TMPL:DEF{"formstart"}%\
+<style>
+#beta, #gamma { display:none; }	
+</style>
+<form method="post" name="rename" action="%SCRIPTURLPATH{"rename"}%/%WEB%/%TOPIC%">%TMPL:END%
+
+%TMPL:DEF{"formend"}%<input type="hidden" name="attachment" value="%FILENAME%" />
+<input type="hidden" name="newattachment" value="%FILENAME%" />
+<input type="hidden" name="newweb" value="Trash" />
+<input type="hidden" name="newtopic" value="TrashAttachment" />
+<input type="hidden" name="redirectto" value="%SCRIPTURL{view}%/%WEB%/%TOPIC%?template=PersonalInfoPictureView" />
+</form>%TMPL:END%
+
+
+%TMPL:DEF{"content"}%%TMPL:P{"formstart"}%<div class="foswikiFormSteps">
+<div class="foswikiFormStep pIPictures">
+<span class="foswikiImage">%INCLUDE{"PersonalInfoLayoutModules" section="image" imgName="%FILENAME%" imgWeb="%BASEWEB%" imgTopic="%BASETOPIC%" imgWidth="120"}%</span><span class="foswikiSmallish foswikiGrayText userPictureActions">%FILENAME%</span>
+</div><!--/foswikiFormStep--></div><!--/foswikiFormSteps-->
+%TMPL:P{"topicaction"}%
+%TMPL:P{"formend"}%%TMPL:END%
Index: /trunk/WebsiteGalleryContrib/data/_WebsiteGalleryContrib/PersonalInfoLayoutModules.txt
===================================================================
--- /trunk/WebsiteGalleryContrib/data/_WebsiteGalleryContrib/PersonalInfoLayoutModules.txt	(revision 6947)
+++ /trunk/WebsiteGalleryContrib/data/_WebsiteGalleryContrib/PersonalInfoLayoutModules.txt	(revision 6947)
@@ -0,0 +1,54 @@
+%META:TOPICINFO{author="ProjectContributor" date="1172698757" format="1.1" reprev="1.1" version="1.1"}%
+---+!! Personal Info Layout Modules
+
+<verbatim>
+%STARTSECTION{"paragraphWithImageLeft"}%<div class="pIparagraphWithImageLeft">
+<div class="pIparagraphWithImageLeftImage">
+<div class="foswikiImage">%INCLUDE{"%TOPIC%" section="image"}%</div><!--/foswikiImage-->
+</div><!--/pIparagraphWithImageLeftImage-->
+<div class="pIparagraphWithImageLeftText">
+%text%
+</div><!--/pIparagraphWithImageLeftText-->
+<br class="foswikiClear" />
+</div><!--/pIparagraphWithImageLeft-->%ENDSECTION{"paragraphWithImageLeft"}%
+</verbatim>
+
+<verbatim>
+%STARTSECTION{"image"}%%INCLUDE{"%TOPIC%" section="%IF{"context ImagePluginEnabled and '%module%'!='pubImage'" then="imagePluginImage" else="pubImage"}%"}%%ENDSECTION{"image"}%
+</verbatim>
+
+<verbatim>
+%STARTSECTION{"pubImage"}%%IF{"defined imgName and '%imgName%'!=''" then="%IF{"'%imgType%'!='nolink'" then="<a href='%PUBURL%/%imgWeb%/%imgTopic%/%imgName%'>"}%<img src='%PUBURL%/%imgWeb%/%imgTopic%/%imgName%' %IF{"defined imgTitle and '%imgTitle%'!=''" then="title='%imgTitle%' alt='%imgTitle%'" else="title='%MAKETEXT{"Enlarge"}%' alt='%MAKETEXT{"Enlarge"}%'"}% %IF{"defined imgWidth and '%imgWidth%'!=''" then="width='%imgWidth%'"}% %IF{"defined imgHeight and '%imgHeight%'!=''" then="height='%imgHeight%'"}%  />%IF{"$imgType!='nolink'" then="</a>"}%" else="<img src='%PUBURL%/%SYSTEMWEB%/PersonalInfoAddOn/silhouette.gif' %IF{"defined imgTitle and '%imgTitle%'!=''" then="title='%imgTitle%' alt='%imgTitle%'" else="title='%MAKETEXT{"Enlarge"}%' alt='%MAKETEXT{"Enlarge"}%'"}% %IF{"defined imgWidth and '%imgWidth%'!=''" then="width='%imgWidth%'"}% %IF{"defined imgHeight and '%imgHeight%'!=''" then="height='%imgHeight%'"}%/>"}%%ENDSECTION{"pubImage"}%
+</verbatim>
+
+<verbatim>
+%STARTSECTION{"imagePluginImage"}%%IMAGE{"%IF{"defined imgName and '%imgName%'!=''" then="%imgName%" else="silhouette.gif"}%" warn="off" align="none" topic="%IF{"defined imgName and '%imgName%'!=''" then="%imgTopic%" else="PersonalInfoAddOn"}%" web="%IF{"defined imgName and '%imgName%'!=''" then="%imgWeb%" else="%SYSTEMWEB%"}%" size="%IF{"defined imgWidth" then="%imgWidth%"}%x%IF{"defined imgHeight and '%imgHeight%'!=''" then="%imgHeight%"}%" %IF{"$imgType='nolink'" then="format=\"<img border=\\"0\\" align=\\"middle\\" src=\\"$src\\" alt=\\"$alt\\" width=\\"$width\\" height=\\"$height\\" longdesc=\\"$desc\\" title=\\"$title\\" />\" "}% title="%IF{"defined imgTitle" then='%imgTitle%' else='"%MAKETEXT{"Enlarge"}%"'}%" }%%ENDSECTION{"imagePluginImage"}%
+</verbatim>
+
+<verbatim>
+%STARTSECTION{"paragraphWithImageLeftStyle"}%<style type="text/css" media="all">
+.pIparagraphFrame {
+}
+.pIparagraphWithImageLeft {
+margin:1em 0 0 0;
+}
+.pIparagraphWithImageLeftText {
+margin-left:%URLPARAM{"imgWidth" default="120"}%px;
+padding-left:25px;
+}
+.pIparagraphWithImageLeftImage {
+float:left;
+}
+.pIFormer {
+background:#F5F6F9;
+padding:.5em 2em;
+}
+.pIFormer,
+.pIFormer h1,
+.pIFormer a:link,
+.pIFormer a:visited,
+.pIFormer .pIparagraphWithImageLeftText th {
+color:#7D8CA5;
+}
+</style>%ENDSECTION{"paragraphWithImageLeftStyle"}%
+</verbatim>
Index: /trunk/WebsiteGalleryContrib/data/_WebsiteGalleryContrib/WebHome.txt
===================================================================
--- /trunk/WebsiteGalleryContrib/data/_WebsiteGalleryContrib/WebHome.txt	(revision 6947)
+++ /trunk/WebsiteGalleryContrib/data/_WebsiteGalleryContrib/WebHome.txt	(revision 6947)
@@ -0,0 +1,4 @@
+%INCLUDE{"WebsitesGeo"}%
+
+%ICON{info}% [[AboutWebsitesGeo]]
+
Index: /trunk/WebsiteGalleryContrib/data/_WebsiteGalleryContrib/WebsiteForm.txt
===================================================================
--- /trunk/WebsiteGalleryContrib/data/_WebsiteGalleryContrib/WebsiteForm.txt	(revision 6947)
+++ /trunk/WebsiteGalleryContrib/data/_WebsiteGalleryContrib/WebsiteForm.txt	(revision 6947)
@@ -0,0 +1,133 @@
+
+see WebsiteTopicEditTemplate for the TopicTemplate
+
+| *Name*       | *Type* | *Size* | *Values* | *Tooltip message* | *Attributes* |
+| Website URL          | text   | 60     | http:// | | |
+|              | label  |        | If your site is behind a firewall or otherwise not publically available, blank the Website URL | | |
+| Organization         | text   | 60     | | | |
+|              | label  |        | Organization or company which is responsible for the site | | |
+| Description | textarea | 58x5 | | | |
+|              | label  |        | A short description of the purpose and contents of your website.  Keep the text short enough to be read in 5 seconds. | | |
+| Location         | text   | 60     |  | | M |
+|              | label  |        | <b><i>City, State, Country</i></b>: Physical location where you or your office is located (_not_ where your server is located) | | |
+| Latitude         | text   | 15     |  | | M |
+| Longitude         | text   | 15     |  | | M |
+|              | label  |        | <a target='_blank' href='http://www.livephysics.com/ptools/location-to-geo-coordinates.php'>Look up your coordinates</a> | | |
+| Picture | label | 1 | | | H |
+|              | label  |        | | | |
+
+
+----
+---++ new-website
+<verbatim>
+%STARTSECTION{"new-website"}%\
+%SCRIPTURL{edit}%/%INCLUDINGWEB%/WebsiteAUTOINC0?templatetopic=WebsiteTopicEditTemplate;formtemplate=WebsiteForm;action=form;_T=%SERVERTIME{$hou$min$sec}%\
+%ENDSECTION{"new-website"}%
+</verbatim>
+
+---+++ sample
+%INCLUDE{"%TOPIC%" section="new-website"}%
+
+
+---++ new-website-button
+<verbatim>
+%STARTSECTION{"new-website-button"}%\
+[[%INCLUDE{"%TOPIC%" section="new-website"}%][%ICON{"globe"}% Submit new website... ]]
+%ENDSECTION{"new-website-button"}%
+</verbatim>
+
+---+++ sample
+%INCLUDE{"%TOPIC%" section="new-website-button"}%
+
+
+---++ render-compact
+<verbatim>
+%STARTSECTION{"render-compact"}%
+<a href="%THETOPIC%">
+<img src="%PUBURL%/%BASEWEB%/%THETOPIC%/%FORMFIELD{"Picture" topic="%THETOPIC%"}%" width="100" height="125" /><br/>
+<noautolink>%FORMFIELD{"WebsiteURL" topic="%THETOPIC%"}%</noautolink>
+</a>
+%ENDSECTION{"render-compact"}%
+</verbatim>
+
+---+++ sample
+%INCLUDE{"%TOPIC%" section="render-compact" THETOPIC="Website1"}%
+
+
+---++ render-list
+<verbatim>
+%STARTSECTION{"render-list"}%
+<tr onclick="location.href='%THETOPIC%'">
+<td><img src="%PUBURL%/%BASEWEB%/%THETOPIC%/%FORMFIELD{"Picture" topic="%THETOPIC%"}%" width="100" height="125" /></td>
+<td><noautolink>%FORMFIELD{"WebsiteURL" topic="%THETOPIC%"}%</noautolink><br/>%FORMFIELD{"Description" topic="%THETOPIC%"}%</td>
+</tr>
+%ENDSECTION{"render-list"}%
+</verbatim>
+
+---+++ sample
+%INCLUDE{"%TOPIC%" section="render-list" THETOPIC="Website1"}%
+
+
+---++ render-map-js
+<verbatim>
+%STARTSECTION{"render-map-js"}%
+<script src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAXuNizwKetGV8B8lqI2AcXBQkBiDA9I23mrf9ZbGSGuChjf173BTjvdDCnDeP2l4Rd47NPIXLjwTG3g&sensor=false" type="text/javascript"></script>
+<script>
+var map = null; 
+function createHTMLNode(htmlCode, tooltip) {
+    // create html node
+    var htmlNode = document.createElement('span');
+    htmlNode.innerHTML = htmlCode
+    htmlNode.className = 'treehtml';
+    htmlNode.setAttribute('title', tooltip);
+    return htmlNode;
+}
+function load_map(p) {
+	 if ( !map ) {
+    map = new GMap2(document.getElementById("map"));
+    map.setMapType(G_PHYSICAL_MAP);
+}
+    var point = new GLatLng(p.latitude,p.longitude);
+    map.setCenter(point, 3);
+//    map.panTo(point, 3);
+    map.addOverlay( new GMarker( point ) );
+    map.openInfoWindow( map.getCenter(), createHTMLNode( 
+    '<table><tr><td>' +
+    '<img width="75" height="85" src="%PUBURL%/%WEB%/' + p.topic + '/' + p.mainphoto + '" style="float:left; padding-right:1em;"/>' +
+    '</td><td>' +
+    p.location + '<br/>' +
+    '<a target="_blank" href="' + p.websiteurl + '">' + p.websiteurl + '</a><br/>' +
+    '</tr></table>'
+     , '' ) );
+}
+</script>
+%ENDSECTION{"render-map-js"}%
+</verbatim>
+
+---+++ sample
+%INCLUDE{"%TOPIC%" section="render-map-js"}%
+
+
+---++ render-map
+<verbatim>
+%STARTSECTION{"render-map"}%\
+<!-- %THETOPIC% -->
+$('#description').fadeOut(500);
+var m = {
+	longitude:%FORMFIELD{"Longitude" topic="%THETOPIC%"}%,
+	latitude:%FORMFIELD{"Latitude" topic="%THETOPIC%"}%,
+	location:'%FORMFIELD{"Location" topic="%THETOPIC%"}%',
+	description:'%FORMFIELD{"Description" topic="%THETOPIC%"}%',
+	websiteurl:'%FORMFIELD{"WebsiteURL" topic="%THETOPIC%"}%',
+	mainphoto:'%FORMFIELD{"Picture" topic="%THETOPIC%"}%',
+	topic:'%THETOPIC%'
+	};\
+load_map(m);
+$('#description').html( m.description );
+//$('#description').html( '%FORMFIELD{"Description" topic="%THETOPIC%"}%' );
+$('#description').fadeIn(1000);
+%ENDSECTION{"render-map"}%
+</verbatim>
+
+---+++ sample
+%INCLUDE{"%TOPIC%" section="render-map" THETOPIC="Website1"}%
Index: /trunk/WebsiteGalleryContrib/data/_WebsiteGalleryContrib/PersonalInfoPictureUploadViewTemplate.txt
===================================================================
--- /trunk/WebsiteGalleryContrib/data/_WebsiteGalleryContrib/PersonalInfoPictureUploadViewTemplate.txt	(revision 6947)
+++ /trunk/WebsiteGalleryContrib/data/_WebsiteGalleryContrib/PersonalInfoPictureUploadViewTemplate.txt	(revision 6947)
@@ -0,0 +1,41 @@
+%META:TOPICINFO{author="ProjectContributor" date="1166089765" format="1.1" version="1.1"}%
+%{"View template with a stripped down attach template from pattern skin to show the upload option only. Attachments will be automatically hidden. After uploading the user will be redirected to PersonalInfoPictureViewTemplate."}%
+%TMPL:INCLUDE{"attach"}%
+
+%TMPL:DEF{"actionheader"}%%TMPL:END%
+%TMPL:DEF{"toolbar"}%%TMPL:END%
+%TMPL:DEF{"pagehelp"}%%TMPL:END%
+%TMPL:DEF{"movedelete"}%%TMPL:END%
+%TMPL:DEF{"pagehelp_nojavascript"}%%TMPL:END%
+%TMPL:DEF{"versions"}%%TMPL:END%
+%TMPL:DEF{"existingattachments"}%%TMPL:END%
+
+
+%TMPL:DEF{"pagetitle"}%%MAKETEXT{"Upload a new personal picture"}%%TMPL:END%
+
+
+%TMPL:DEF{"titleaction"}%%MAKETEXT{"(upload picture)"}% %TMPL:END%
+
+
+%TMPL:DEF{"previous"}%%{"overide FILENAME variable"}%<input type="hidden" name="filename" value="" />%TMPL:END%
+
+
+%TMPL:DEF{"topicactionbuttons"}%<input type="submit" class="foswikiSubmit" value='%MAKETEXT{"Upload file"}%' /> %MAKETEXT{"or"}% <a href="%SCRIPTURL{view}%/%WEB%/%TOPIC%?template=PersonalInfoPictureView">%MAKETEXT{"Cancel"}%</a>%TMPL:END%
+
+
+%TMPL:DEF{"hiddenfields"}%<input type="hidden" name="filecomment" value="" />
+<input type="hidden" name="createlink" value="" />
+<input type="hidden" name="hidefile" value="true" />
+<input type="hidden" name="redirectto" value="%SCRIPTURL{view}%/%WEB%/%TOPIC%?template=PersonalInfoPictureView" />\
+%TMPL:END%
+
+%TMPL:DEF{"comment"}%%TMPL:END%
+%TMPL:DEF{"properties"}%%TMPL:END%
+%TMPL:DEF{"notes"}%
+%ATTACHMENTLIST{web="%BASEWEB%" topic="%BASETOPIC%" format="<img src='$fileUrl' width='74' height='68' /> "}%\
+%TMPL:END%
+%TMPL:DEF{"extranotes"}%
+<style>
+#beta, #gamma { display:none; }	
+</style>
+%TMPL:END%
Index: /trunk/WebsiteGalleryContrib/data/System/WebsiteGalleryContrib.txt
===================================================================
--- /trunk/WebsiteGalleryContrib/data/System/WebsiteGalleryContrib.txt	(revision 6947)
+++ /trunk/WebsiteGalleryContrib/data/System/WebsiteGalleryContrib.txt	(revision 6947)
@@ -0,0 +1,58 @@
+---+!! !WebsiteGalleryContrib
+<!--
+One line description, required for extensions repository catalog.
+BuildContrib will fill in the SHORTDESCRIPTION with the value of
+$SHORTDESCRIPTION from the .pm module, or you can redefine it here if you
+prefer.
+   * Set SHORTDESCRIPTION = %$SHORTDESCRIPTION%
+-->
+%SHORTDESCRIPTION%
+
+%TOC%
+
+---++ Usage
+
+---++ Examples
+
+---++ Installation Instructions
+
+%$INSTALL_INSTRUCTIONS%
+
+---++ Info
+
+
+---++ MANIFEST
+
+   * [[Websites]] - composite of the two lists below
+   * WebsitesList - reverse chronological list of the websites
+   * WebsitesGeo - rotates through the list of websites, showing each one on a map along with a desription and info bubble
+      * WebsiteGeoRenderAjax - ajax call to refresh the webpage with another site entry
+
+   * WebsiteForm - form definition __and__ routines to render the form data
+      * WebsiteTopicEditTemplate - default values for a new website entry
+      * WebsiteViewTemplate - custom-tailored viewer for a website entry, renders form fields and a mini image gallery
+      * WebsiteEditTemplate - custom-tailered editor for a website entry, renders just a form for editting
+      * PersonalInfoPictureDeleteViewTemplate, PersonalInfoPictureUploadViewTemplate, PersonalInfoLayoutModules - support for photos
+
+
+---++ TODO
+   * BUG: javasript gets confused when there is a CR/LF in the description field
+   * BUG: all uploaded photos get named as =FILENAME=
+   * automatic screenshot based on Website URL and picture upload
+   * automatic geocoordinates lookup based on location field (using Foswiki:Extensions.GeoPlugin and/or a web service)
+   * use Foswiki:Extensions.ImagePlugin to generate cached thumbnails
+   * (optionally) add Foswiki:Extensions.TagsPlugin combined with Foswiki:Extensions.TagCloudPlugin
+
+
+
+|  Author(s): | |
+|  Copyright: | &copy; |
+|  License: | [[http://www.gnu.org/licenses/gpl.html][GPL (Gnu General Public License)]] |
+|  Release: | %$RELEASE% |
+|  Version: | %$VERSION% |
+|  Change History: | <!-- versions below in reverse order -->&nbsp; |
+|  Dependencies: | %$DEPENDENCIES% |
+|  Home page: | http://foswiki.org/bin/view/Extensions/WebsiteGalleryContrib |
+|  Support: | http://foswiki.org/bin/view/Support/WebsiteGalleryContrib |
+
+<!-- Do _not_ attempt to edit this topic; it is auto-generated. -->
Index: /trunk/WebsiteGalleryContrib/lib/Foswiki/Contrib/WebsiteGalleryContrib/DEPENDENCIES
===================================================================
--- /trunk/WebsiteGalleryContrib/lib/Foswiki/Contrib/WebsiteGalleryContrib/DEPENDENCIES	(revision 6947)
+++ /trunk/WebsiteGalleryContrib/lib/Foswiki/Contrib/WebsiteGalleryContrib/DEPENDENCIES	(revision 6947)
@@ -0,0 +1,7 @@
+# Dependencies for WebsiteGalleryContrib
+# Example:
+# Time::ParseDate,>=2003.0211,cpan,Required.
+# Foswiki::Plugins,>=1.2,perl,Requires version 1.2 of handler API.
+Foswiki::Plugins::AttachmentListPlugin,,perl,Required.
+Foswiki::Plugins::ImagePlugin,,perl,Required.
+Foswiki::Plugins::JQueryPlugin,,perl,Required.
Index: /trunk/WebsiteGalleryContrib/lib/Foswiki/Contrib/WebsiteGalleryContrib/MANIFEST
===================================================================
--- /trunk/WebsiteGalleryContrib/lib/Foswiki/Contrib/WebsiteGalleryContrib/MANIFEST	(revision 6947)
+++ /trunk/WebsiteGalleryContrib/lib/Foswiki/Contrib/WebsiteGalleryContrib/MANIFEST	(revision 6947)
@@ -0,0 +1,19 @@
+# Release manifest for WebsiteGalleryContrib
+lib/Foswiki/Contrib/WebsiteGalleryContrib.pm 0644 Perl module
+pub/_WebsiteGalleryContrib/SampleWebsite/lighted.jpg
+pub/_WebsiteGalleryContrib/SampleWebsite/loopita-chaise-1.jpg
+pub/_WebsiteGalleryContrib/SampleWebsite/chair1.jpg
+data/_WebsiteGalleryContrib/WebPreferences.txt
+data/_WebsiteGalleryContrib/WebsitesList.txt
+data/_WebsiteGalleryContrib/WebsitesGeo.txt
+data/_WebsiteGalleryContrib/PersonalInfoPictureViewTemplate.txt
+data/_WebsiteGalleryContrib/PersonalInfoPictureDeleteViewTemplate.txt
+data/_WebsiteGalleryContrib/WebsiteViewTemplate.txt
+data/_WebsiteGalleryContrib/WebsiteTopicEditTemplate.txt
+data/_WebsiteGalleryContrib/WebsiteGeoRenderAjax.txt
+data/_WebsiteGalleryContrib/WebsiteForm.txt
+data/_WebsiteGalleryContrib/WebsiteEditTemplate.txt
+data/_WebsiteGalleryContrib/PersonalInfoLayoutModules.txt
+data/_WebsiteGalleryContrib/SampleWebsite.txt
+data/_WebsiteGalleryContrib/PersonalInfoPictureUploadViewTemplate.txt
+data/System/WebsiteGalleryContrib.txt 0644 Documentation
Index: /trunk/WebsiteGalleryContrib/lib/Foswiki/Contrib/WebsiteGalleryContrib/build.pl
===================================================================
--- /trunk/WebsiteGalleryContrib/lib/Foswiki/Contrib/WebsiteGalleryContrib/build.pl	(revision 6947)
+++ /trunk/WebsiteGalleryContrib/lib/Foswiki/Contrib/WebsiteGalleryContrib/build.pl	(revision 6947)
@@ -0,0 +1,24 @@
+#!/usr/bin/perl -w
+BEGIN { unshift @INC, split( /:/, $ENV{FOSWIKI_LIBS} ); }
+use Foswiki::Contrib::Build;
+
+# Create the build object
+$build = new Foswiki::Contrib::Build('WebsiteGalleryContrib');
+
+# (Optional) Set the details of the repository for uploads.
+# This can be any web on any accessible Foswiki installation.
+# These defaults will be used when expanding tokens in .txt
+# files, but be warned, they can be overridden at upload time!
+
+# name of web to upload to
+$build->{UPLOADTARGETWEB} = 'Extensions';
+# Full URL of pub directory
+$build->{UPLOADTARGETPUB} = 'http://www.biohack.net/wiki/pub';
+# Full URL of bin directory
+$build->{UPLOADTARGETSCRIPT} = 'http://www.biohack.net/wiki/bin';
+# Script extension
+$build->{UPLOADTARGETSUFFIX} = '';
+
+# Build the target on the command line, or the default target
+$build->build($build->{target});
+
Index: /trunk/WebsiteGalleryContrib/lib/Foswiki/Contrib/WebsiteGalleryContrib.pm
===================================================================
--- /trunk/WebsiteGalleryContrib/lib/Foswiki/Contrib/WebsiteGalleryContrib.pm	(revision 6947)
+++ /trunk/WebsiteGalleryContrib/lib/Foswiki/Contrib/WebsiteGalleryContrib.pm	(revision 6947)
@@ -0,0 +1,37 @@
+# Contrib for Foswiki - The Free and Open Source Wiki, http://foswiki.org/
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details, published at
+# http://www.gnu.org/copyleft/gpl.html
+
+package Foswiki::Contrib::WebsiteGalleryContrib;
+
+use strict;
+
+# $VERSION is referred to by Foswiki, and is the only global variable that
+# *must* exist in this package. This should always be in the format
+# $Rev: 3193 $ so that Foswiki can determine the checked-in status of the
+# extension.
+our $VERSION = '$Rev$'; # version of *this file*.
+
+# $RELEASE is used in the "Find More Extensions" automation in configure.
+# It is a manually maintained string used to identify functionality steps.
+# You can use any of the following formats:
+# tuple   - a sequence of integers separated by . e.g. 1.2.3. The numbers
+#           usually refer to major.minor.patch release or similar. You can
+#           use as many numbers as you like e.g. '1' or '1.2.3.4.5'.
+# isodate - a date in ISO8601 format e.g. 2009-08-07
+# date    - a date in 1 Jun 2009 format. Three letter English month names only.
+# Note: it's important that this string is exactly the same in the extension
+# topic - if you use %$RELEASE% with BuildContrib this is done automatically.
+our $RELEASE = '1.1.1';
+
+our $SHORTDESCRIPTION = 'Website database and gallery';
+
