<?xml version="1.0" encoding="UTF-8" ?> 
<Module>
<ModulePrefs title="Gallery Random" 
             title_url="__UP_gallery_url__"
             description="Display random photos from a Gallery2 based
             website (http://gallery.menalto.com).  Select photos
             using one of the following methods: randomImage,
             randomAlbum, recentImage, viewedImage, recentAlbum,
             viewedAlbum, dailyImage, weeklyImage, monthlyImage,
             dailyAlbum, weeklyAlbum, monthlyAlbum, or specificItem."
             author="Mike Oltmans"
	     author_email="moltmans+GalleryRandom@gmail.com"
	     author_location="Cambridge, MA"
             screenshot="http://www.gray-duck.com/software/GalleryRandom/screenshot.png"
	     render_inline="required"
	     scrolling="true" 
/>

<UserPref name="gallery_url" display_name="Gallery URL" required="true"/>
<UserPref name="root_album" display_name="Root album to select from (specified by album id)" default_value=""/>
<UserPref name="image_size"  display_name="Max image size" default_value="275"/>
<UserPref name="blocks"      display_name="What to show" datatype="enum" default_value="randomAlbum">
  <EnumValue value="randomImage"/>
  <EnumValue value="recentImage"/>
  <EnumValue value="viewedImage"/>
  <EnumValue value="randomAlbum"/>
  <EnumValue value="recentAlbum"/>
  <EnumValue value="viewedAlbum"/>
  <EnumValue value="dailyImage"/>
  <EnumValue value="weeklyImage"/>
  <EnumValue value="monthlyImage"/>
  <EnumValue value="dailyAlbum"/>
  <EnumValue value="weeklyAlbum"/>
  <EnumValue value="monthlyAlbum"/>
  <EnumValue value="specificItem"/>
</UserPref>
<UserPref name="show_title" display_name="Show title?" datatype="bool" default_value="true"/>
<UserPref name="show_date" display_name="Show date?" datatype="bool" default_value="false"/>
<UserPref name="show_views" display_name="Show views?" datatype="bool" default_value="false"/>
<UserPref name="show_owner" display_name="Show owner?" datatype="bool" default_value="false"/>
<UserPref name="show_heading" display_name="Show heading?" datatype="bool" default_value="false"/>
<UserPref name="num_items" display_name="Number of items in cache" default_value="5"/>
<UserPref name="show_debug" display_name="Show the debug URL?" datatype="bool" default_value="false"/>

<Content type="html">
  <![CDATA[

  <div id="random_block__MODULE_ID__"></div>

  <script type="text/javascript">
  _IG_RegisterOnloadHandler(function () {
    var prefs = new _IG_Prefs(__MODULE_ID__);
    var galleryURL = prefs.getString("gallery_url");
    var rootAlbum = prefs.getString("root_album");
    var imageSize = prefs.getInt("image_size");
    var blocks = prefs.getString("blocks");
    var showTitle = prefs.getBool("show_title");
    var showDate = prefs.getBool("show_date");
    var showViews = prefs.getBool("show_views");
    var showOwner = prefs.getBool("show_owner");
    var showHeading = prefs.getBool("show_heading");
    var showDebug = prefs.getBool("show_debug");
    var refresh = prefs.getInt("num_items");

    // Clean up the URL
    var siteRegex1 = /http:\/\//;
    var siteRegex2 = /\/$/;
    galleryURL = galleryURL.replace(siteRegex1, "");
    galleryURL = galleryURL.replace(siteRegex2, "");

    var url = "http://" + galleryURL + "/main.php?g2_view=imageblock.External";

    url += "&g2_show=fullSize" + 
           (showTitle ? "|title" : "") + 
           (showDate ? "|date" : "") +
           (showViews ? "|views" : "") +
           (showOwner ? "|owner" : "") +
           (showHeading ? "|heading" : "") +
           "&g2_maxSize=" + imageSize +
           "&g2_linkTarget=gallery_frame";

    // This adds an ignored parameter to the url.  Google caches the
    // results of the query so this is a balance between not always
    // waiting for gallery and not always showing the same image.  The
    // result is that there are 'n' possible cached images that live
    // however long googles cache lives.
    url += "&ignore="+Math.floor(Math.random()*refresh);
    if ("" != rootAlbum) {
      url += "&g2_itemId=" + rootAlbum;
    }
    url += "&g2_blocks=" + blocks;

    _IG_FetchContent(url, function (responseText)  {
       if (responseText == "") {
         responseText = "Url not found: " + url;
       }
       else if (showDebug) {
         responseText += url;
       }
      _gel("random_block__MODULE_ID__").innerHTML = responseText;
      // For more extreme debugging  
      // alert("Got: " + responseText);

    });
  });
</script>
]]>
</Content>
</Module>
