<?xml version="1.0" encoding="UTF-8" ?>
<Module>
<ModulePrefs title="__UP_title__"
             author="__MSG_google__"
             author_email="sophia.feedback+photo@gmail.com"
             screenshot="__MSG_photo_screenshot__"
             thumbnail="/ig/modules/gadgetmaker_content/thumbs/photoalbum.png"
             description="__MSG_photo_description__">
  <Require feature="dynamic-height"/>
  <Require feature="setprefs"/>
  <Require feature="views"/>
  <Require feature="gadgetmaker"/>
  <Locale messages="/ig/modules/gadgetmaker_content/en_ALL.xml"/>
  <Locale lang="ar" messages="/ig/modules/gadgetmaker_content/ar_ALL.xml"
          language_direction="rtl"/>
  <Locale lang="bg" messages="/ig/modules/gadgetmaker_content/bg_ALL.xml"/>
  <Locale lang="ca" messages="/ig/modules/gadgetmaker_content/ca_ALL.xml"/>
  <Locale lang="cs" messages="/ig/modules/gadgetmaker_content/cs_ALL.xml"/>
  <Locale lang="da" messages="/ig/modules/gadgetmaker_content/da_ALL.xml"/>
  <Locale lang="de" messages="/ig/modules/gadgetmaker_content/de_ALL.xml"/>
  <Locale lang="el" messages="/ig/modules/gadgetmaker_content/el_ALL.xml"/>
  <Locale lang="en-GB"
          messages="/ig/modules/gadgetmaker_content/en-GB_ALL.xml"/>
  <Locale lang="es" messages="/ig/modules/gadgetmaker_content/es_ALL.xml"/>
  <Locale lang="es-419"
          messages="http://www.google.com/ig/modules/gadgetmaker/gadgetmaker_content/messages/es-419_ALL.xml"/>
  <Locale lang="et" messages="/ig/modules/gadgetmaker_content/et_ALL.xml"/>
  <Locale lang="fi" messages="/ig/modules/gadgetmaker_content/fi_ALL.xml"/>
  <Locale lang="fr" messages="/ig/modules/gadgetmaker_content/fr_ALL.xml"/>
  <Locale lang="he" messages="/ig/modules/gadgetmaker_content/iw_ALL.xml"
          language_direction="rtl"/>
  <Locale lang="hi" messages="/ig/modules/gadgetmaker_content/hi_ALL.xml"/>
  <Locale lang="hr" messages="/ig/modules/gadgetmaker_content/hr_ALL.xml"/>
  <Locale lang="hu" messages="/ig/modules/gadgetmaker_content/hu_ALL.xml"/>
  <Locale lang="hy" messages="/ig/modules/gadgetmaker_content/hy_ALL.xml"/>
  <Locale lang="id" messages="/ig/modules/gadgetmaker_content/id_ALL.xml"/>
  <Locale lang="in" messages="/ig/modules/gadgetmaker_content/in_ALL.xml"/>
  <Locale lang="is" messages="/ig/modules/gadgetmaker_content/is_ALL.xml"/>
  <Locale lang="it" messages="/ig/modules/gadgetmaker_content/it_ALL.xml"/>
  <Locale lang="iw" messages="/ig/modules/gadgetmaker_content/iw_ALL.xml"
          language_direction="rtl"/>
  <Locale lang="ja" messages="/ig/modules/gadgetmaker_content/ja_ALL.xml"/>
  <Locale lang="ko" messages="/ig/modules/gadgetmaker_content/ko_ALL.xml"/>
  <Locale lang="lt" messages="/ig/modules/gadgetmaker_content/lt_ALL.xml"/>
  <Locale lang="lv" messages="/ig/modules/gadgetmaker_content/lv_ALL.xml"/>
  <Locale lang="ms" messages="/ig/modules/gadgetmaker_content/ms_ALL.xml"/>
  <Locale lang="nl" messages="/ig/modules/gadgetmaker_content/nl_ALL.xml"/>
  <Locale lang="no" messages="/ig/modules/gadgetmaker_content/no_ALL.xml"/>
  <Locale lang="pl" messages="/ig/modules/gadgetmaker_content/pl_ALL.xml"/>
  <Locale lang="pt-BR"
          messages="/ig/modules/gadgetmaker_content/pt-BR_ALL.xml"/>
  <Locale lang="pt-PT"
          messages="/ig/modules/gadgetmaker_content/pt-PT_ALL.xml"/>
  <Locale lang="ro" messages="/ig/modules/gadgetmaker_content/ro_ALL.xml"/>
  <Locale lang="ru" messages="/ig/modules/gadgetmaker_content/ru_ALL.xml"/>
  <Locale lang="sk" messages="/ig/modules/gadgetmaker_content/sk_ALL.xml"/>
  <Locale lang="sl" messages="/ig/modules/gadgetmaker_content/sl_ALL.xml"/>
  <Locale lang="sr" messages="/ig/modules/gadgetmaker_content/sr_ALL.xml"/>
  <Locale lang="sv" messages="/ig/modules/gadgetmaker_content/sv_ALL.xml"/>
  <Locale lang="th" messages="/ig/modules/gadgetmaker_content/th_ALL.xml"/>
  <Locale lang="tl" messages="/ig/modules/gadgetmaker_content/tl_ALL.xml"/>
  <Locale lang="tr" messages="/ig/modules/gadgetmaker_content/tr_ALL.xml"/>
  <Locale lang="uk" messages="/ig/modules/gadgetmaker_content/uk_ALL.xml"/>
  <Locale lang="vi" messages="/ig/modules/gadgetmaker_content/vi_ALL.xml"/>
  <Locale lang="zh-CN"
          messages="/ig/modules/gadgetmaker_content/zh-CN_ALL.xml"/>
  <Locale lang="zh-HK"
          messages="http://www.google.com/ig/modules/gadgetmaker/gadgetmaker_content/messages/zh-HK_ALL.xml"/>
  <Locale lang="zh-TW"
          messages="/ig/modules/gadgetmaker_content/zh-TW_ALL.xml"/>
</ModulePrefs>
<UserPref name="preview" default_value="false" datatype="hidden"/>
<UserPref name="hide_browsing_for_preview" default_value="false"
          datatype="hidden"/>
<UserPref name="title" default_value="__MSG_photo__" datatype="hidden"/>
<UserPref name="created" default_value="" datatype="hidden"/>
<UserPref name="last_modified" default_value="" datatype="hidden" />
<UserPref name="author" default_value="" datatype="hidden"/>
<UserPref name="location" default_value="" datatype="hidden"/>
<UserPref name="email" default_value="" datatype="hidden"/>
<UserPref name="description" default_value="__MSG_photo_description__"
          datatype="hidden"/>
<UserPref name="p1" default_value="__MSG_photo1def__" datatype="hidden"/>
<UserPref name="c1" default_value="" datatype="hidden"/>
<UserPref name="p2" default_value="" datatype="hidden"/>
<UserPref name="c2" default_value="" datatype="hidden"/>
<UserPref name="p3" default_value="" datatype="hidden"/>
<UserPref name="c3" default_value="" datatype="hidden"/>
<UserPref name="p4" default_value="" datatype="hidden"/>
<UserPref name="c4" default_value="" datatype="hidden"/>
<UserPref name="p5" default_value="" datatype="hidden"/>
<UserPref name="c5" default_value="" datatype="hidden"/>
<UserPref name="p6" default_value="" datatype="hidden"/>
<UserPref name="c6" default_value="" datatype="hidden"/>
<UserPref name="p7" default_value="" datatype="hidden"/>
<UserPref name="c7" default_value="" datatype="hidden"/>
<UserPref name="p8" default_value="" datatype="hidden"/>
<UserPref name="c8" default_value="" datatype="hidden"/>
<UserPref name="p9" default_value="" datatype="hidden"/>
<UserPref name="c9" default_value="" datatype="hidden"/>
<UserPref name="color" default_value="b" datatype="hidden"/>
<UserPref name="width" default_value="3" datatype="hidden"/>
<UserPref name="rotate" default_value="d" datatype="hidden"/>
<!--
Possible values (commented out, as it's valid only for "enum" datatype):
  <EnumValue value="d" display_value="Once a day"/>
  <EnumValue value="r" display_value="On refresh"/>
-->
<UserPref name="pic" default_value="-1" datatype="hidden"/>
<UserPref name="day" default_value="-1" datatype="hidden"/>
<Content type="html" view="home">
<![CDATA[
<script>
var MAX_NUM_PICTURES = 7;
var TIMEOUT = 10;
var NUM_OF_RETRIES = 100;
var RESIZE_STEP = 30;
var prefs = new _IG_Prefs(__MODULE_ID__);
var pics = new Array();
var image;
var index = 0;

_IG_RegisterOnloadHandler(
    function() {
      _gm = new _GadgetMaker(prefs);
      if (prefs.getInt('width') > 0) {
        _gel('pic').style.border = '1px solid '+ _gm._borderColor;
      }
      _gm._setBackground();
      _gm._addFrameIfPreview();
      if (_gm._isPreviewWithHiddenBrowsing()) {
        _gel('preview_section').style.display = 'none';
      }
      for (var i = 0; i < MAX_NUM_PICTURES; i++) {
        var pic = _hesc(prefs.getString('p' + (i + 1)));
        if (pic != '' && pic != '__MSG_photo1def__') {
          pics.push([pic, _hesc(prefs.getString('c' + (i + 1)))]);
        }
      }
      if (pics.length < 1) {
        pics.push(['__MSG_photo1def__', '']);
      }
      if (!_gm._isPreview()) {
        _gel('preview_section').style.display = 'none';
        if (prefs.getString('rotate') == 'r') {
          index = prefs.getInt('pic');
          index = (index + 1) % pics.length;
          prefs.set('pic', index);
        } else if (prefs.getString('rotate') == 'd') {
          var ms = prefs.getInt('day');
          var startDate = new Date(ms);
          if (ms == -1) {
            startDate = new Date();
            startDate.setHours(0);
            startDate.setMinutes(0);
            startDate.setSeconds(0);
            startDate.setMilliseconds(0);
            prefs.set('day', startDate.getTime());
          }
          var todaysDate = new Date();
          todaysDate.setHours(0);
          todaysDate.setMinutes(0);
          todaysDate.setSeconds(0);
          todaysDate.setMilliseconds(0);
          /* 1000 * 60 * 60 * 24 = 86400000 */
          var numMsInDay = 86400000;
          var numDaySinceStart = Math.floor(
              (todaysDate.getTime() - startDate.getTime()) / numMsInDay);
          index = numDaySinceStart % pics.length;
        }
      }
      showPic(index);
    }
);
var count = 0;

function getDayText(day) {
  var day_text = '__MSG_photoof__';
  day_text = day_text.replace(/\%VAL1\%/g, day);
  day_text = day_text.replace(/\%VAL2\%/g, pics.length);
  return day_text;
}

var preloadedImage = new Image();

function showPic(index) {
  var pictureSrc = pics[index][0];
  var pic_caption = pics[index][1];
  preloadedImage.src = pictureSrc;
  _gel('pic').innerHTML = '<img src="' + pictureSrc + '">';
  _gel('cap').innerHTML = pic_caption;
  image = _gel('pic').getElementsByTagName('img').item(0);
  if (_gm._isPreview()) {
    _gel('dayof').innerHTML = getDayText(index + 1);
  }
  resize();
}

function prevPic() {
  index--;
  if (index < 0) {
    index = pics.length - 1;
  }
  _gel('pic').innerHTML = '';
  setTimeout('showPic(' + index + ');_IG_AdjustIFrameHeight();', TIMEOUT);
}

function nextPic() {
  index++;
  if (index >= pics.length) {
   index = 0;
  }
  _gel('pic').innerHTML = '';
  setTimeout('showPic(' + index + ');_IG_AdjustIFrameHeight();', TIMEOUT);
}

function resize() {
  var prefs = new _IG_Prefs(__MODULE_ID__);
  if (!image.complete && count < NUM_OF_RETRIES) {
    count++;
    setTimeout('resize()', TIMEOUT);
  } else {
    var width = _gel('container').offsetWidth;
    var maxwidth = width - RESIZE_STEP;
    if (image.width > maxwidth && maxwidth > 0) {
      image.width = maxwidth;
    }
    _IG_AdjustIFrameHeight();
  }
}
</script>
<style>
#cap {
  margin:6px 4px 0px 4px;
  text-align:center;
  font-size:smaller;
}
a.arrow, a:visited.arrow {
  font-size:83%;
  white-space:nowrap;
  color:#8888EE;
}
#box {
  padding:6px;
}
#dayof {
  width:100%;
  font-size:82%;
  color:#676767;
  text-align:center;
}
#preview_section {
  padding-top:6px;
  padding-bottom:6px;
}
</style>
<div id="box">
  <div width="100%" id="container">
    <img alt="" width="1" height="1"/>
  </div>
  <table cellpadding="0" cellspacing="0" width="100%">
    <tr>
      <td width="50%">
        &nbsp;
      </td>
      <td>
        <div id="pic">
        </div>
      </td>
      <td width="50%">
        &nbsp;
      </td>
    </tr>
  </table>
  <div id="cap"></div>
</div>
<div id="preview_section">
  <table width="100%" cellspacing="0" cellpadding="0">
    <tr>
      <td>
        <a class="arrow" href="javascript:void(0)" onclick="prevPic()">
          &laquo; __MSG_gm_prev_photo__
        </a>
      </td>
      <td id="dayof">
      </td>
      <td>
        <a class="arrow" href="javascript:void(0)" onclick="nextPic()">
          __MSG_gm_next_photo__ &raquo;
        </a>
      </td>
    </tr>
  </table>
</div>
]]>
</Content>
<Content type="html" view="canvas">
<![CDATA[
<script>
var MAX_NUM_PICTURES = 7;
var TIMEOUT = 10;
var NUM_OF_RETRIES = 100;
var RESIZE_STEP = 30;
var prefs = new _IG_Prefs(__MODULE_ID__);
var pics = new Array();
var image;
var index = 0;

_IG_RegisterOnloadHandler(
    function() {
      _gm = new _GadgetMaker(prefs, __MODULE_ID__);
      _gm._showInfo('/ig/modules/gadgetmaker_content/thumbs/photoalbum.png');
      if (prefs.getInt('width') > 0) {
        _gel('pic').style.border = '1px solid '+ _gm._borderColor;
      }
      _gm._setBackground();
      _gm._addFrameIfPreview();
      if (_gm._isPreviewWithHiddenBrowsing()) {
        _gel('preview_section').style.display = 'none';
      }
      for (var i = 0; i < MAX_NUM_PICTURES; i++) {
        var pic = _hesc(prefs.getString('p' + (i + 1)));
        if (pic != '' && pic != '__MSG_photo1def__') {
          pics.push([pic, _hesc(prefs.getString('c' + (i + 1)))]);
        }
      }
      if (pics.length < 1) {
        pics.push(['__MSG_photo1def__', '']);
      }
      if (!_gm._isPreview()) {
        _gel('preview_section').style.display = 'none';
        if (prefs.getString('rotate') == 'r') {
          index = prefs.getInt('pic');
          index = (index + 1) % pics.length;
          prefs.set('pic', index);
        } else if (prefs.getString('rotate') == 'd') {
          var ms = prefs.getInt('day');
          var startDate = new Date(ms);
          if (ms == -1) {
            startDate = new Date();
            startDate.setHours(0);
            startDate.setMinutes(0);
            startDate.setSeconds(0);
            startDate.setMilliseconds(0);
            prefs.set('day', startDate.getTime());
          }
          var todaysDate = new Date();
          todaysDate.setHours(0);
          todaysDate.setMinutes(0);
          todaysDate.setSeconds(0);
          todaysDate.setMilliseconds(0);
          /* 1000 * 60 * 60 * 24 = 86400000 */
          var numMsInDay = 86400000;
          var numDaySinceStart = Math.floor(
              (todaysDate.getTime() - startDate.getTime()) / numMsInDay);
          index = numDaySinceStart % pics.length;
        }
      }
      showPic(index);
    }
);
var count = 0;

function getDayText(day) {
  var day_text = '__MSG_photoof__';
  day_text = day_text.replace(/\%VAL1\%/g, day);
  day_text = day_text.replace(/\%VAL2\%/g, pics.length);
  return day_text;
}

var preloadedImage = new Image();

function showPic(index) {
  var pictureSrc = pics[index][0];
  var pic_caption = pics[index][1];
  preloadedImage.src = pictureSrc;
  _gel('pic').innerHTML = '<img src="' + pictureSrc + '">';
  _gel('cap').innerHTML = pic_caption;
  image = _gel('pic').getElementsByTagName('img').item(0);
  if (_gm._isPreview()) {
    _gel('dayof').innerHTML = getDayText(index + 1);
  }
  resize();
}

function prevPic() {
  index--;
  if (index < 0) {
    index = pics.length - 1;
  }
  _gel('pic').innerHTML = '';
  setTimeout('showPic(' + index + ');_IG_AdjustIFrameHeight();', TIMEOUT);
}

function nextPic() {
  index++;
  if (index >= pics.length) {
   index = 0;
  }
  _gel('pic').innerHTML = '';
  setTimeout('showPic(' + index + ');_IG_AdjustIFrameHeight();', TIMEOUT);
}

function resize() {
  var prefs = new _IG_Prefs(__MODULE_ID__);
  if (!image.complete && count < NUM_OF_RETRIES) {
    count++;
    setTimeout('resize()', TIMEOUT);
  } else {
    var width = _gel('container').offsetWidth;
    var maxwidth = width - RESIZE_STEP;
    if (image.width > maxwidth && maxwidth > 0) {
      image.width = maxwidth;
    }
    _IG_AdjustIFrameHeight();
  }
}
</script>
<style>
#cap {
  margin:6px 4px 0px 4px;
  text-align:center;
  font-size:smaller;
}
a.arrow, a:visited.arrow {
  font-size:83%;
  white-space:nowrap;
  color:#8888EE;
}
#box {
  padding:6px;
}
#dayof {
  width:100%;
  font-size:82%;
  color:#676767;
  text-align:center;
}
#preview_section {
  padding-top:6px;
  padding-bottom:6px;
}
</style>
<table width="100%">
  <tr>
    <td width="70%" valign="top">
      <div id="box">
        <div width="100%" id="container">
          <img alt="" width="1" height="1"/>
        </div>
        <table cellpadding="0" cellspacing="0" width="100%">
          <tr>
            <td width="50%">
              &nbsp;
            </td>
            <td>
              <div id="pic">
              </div>
            </td>
            <td width="50%">
              &nbsp;
            </td>
          </tr>
        </table>
        <div id="cap"></div>
      </div>
      <div id="preview_section">
        <table width="100%" cellspacing="0" cellpadding="0">
          <tr>
            <td>
              <a class="arrow" href="javascript:void(0)" onclick="prevPic()">
                &laquo; __MSG_gm_prev_photo__
              </a>
            </td>
            <td id="dayof">
            </td>
            <td>
              <a class="arrow" href="javascript:void(0)" onclick="nextPic()">
                __MSG_gm_next_photo__ &raquo;
              </a>
            </td>
          </tr>
        </table>
      </div>
    </td>
    <td valign="top">
      &nbsp;
    </td>
    <td width="30%" valign="top">
      <div id="info-box"/>
    </td>
  </tr>
</table>
]]>
</Content>
</Module>
