<?xml version="1.0" encoding="UTF-8" ?>
<Module>
<ModulePrefs title="Yahoo! &#12471;&#12519;&#12483;&#12500;&#12531;&#12464; &#12521;&#12531;&#12463;" description="Yahoo! &#12471;&#12519;&#12483;&#12500;&#12531;&#12464;&#12398;&#12521;&#12531;&#12461;&#12531;&#12464;&#12434;&#34920;&#31034;&#12375;&#12414;&#12377;&#12290;" author="SAKURAI Kenichi" screenshot="http://homepage1.nifty.com/~kenichi/gg/ys_rank.png" thumbnail="http://homepage1.nifty.com/~kenichi/gg/ys_rank.gif" author_email="gadget01@yokohama.nifty.jp" title_url="http://www.google.co.jp/ig/directory?url=gadget01%40yokohama.nifty.jp&amp;type=authors" category="lifestyle" author_link="http://something.cool.coocan.jp/kenichi/">
  <Require feature="dynamic-height" />
  <Require feature="setprefs" />
  <Locale lang="ja" country="jp" />
</ModulePrefs>
<UserPref name="gender" display_name="&#24615;&#21029;" default_value="default" datatype="enum">
  <EnumValue value="default" display_value="&#30007;&#22899;" />
  <EnumValue value="male" display_value="&#30007;&#24615;" />
  <EnumValue value="female" display_value="&#22899;&#24615;" />
</UserPref>
<UserPref name="generation" display_name="&#19990;&#20195;" default_value="default" datatype="enum">
  <EnumValue value="default" display_value="&#20840;&#19990;&#20195;" />
  <EnumValue value="10" display_value="10&#20195;" />
  <EnumValue value="20" display_value="20&#20195;" />
  <EnumValue value="30" display_value="30&#20195;" />
  <EnumValue value="40" display_value="40&#20195;" />
  <EnumValue value="50" display_value="50&#20195;&#20197;&#19978;" />
</UserPref>
<UserPref name="spans" display_name="&#38291;&#38548;" default_value="daily" datatype="enum">
  <EnumValue value="daily" display_value="&#12487;&#12452;&#12522;&#12540;" />
  <EnumValue value="weekly" display_value="&#12454;&#12451;&#12540;&#12463;&#12522;&#12540;" />
</UserPref>
<UserPref name="items" display_name="&#34920;&#31034;&#21830;&#21697;&#25968;" default_value="10" datatype="enum">
  <EnumValue value="1" />
  <EnumValue value="3" />
  <EnumValue value="5" />
  <EnumValue value="10" />
  <EnumValue value="15" />
  <EnumValue value="20" />
</UserPref>
<UserPref name="work2" datatype="hidden" default_value="1@">
</UserPref>
<UserPref name="work3" datatype="hidden" default_value="&#32207;&#21512;@">
</UserPref>
<Content type="html">
<![CDATA[
<style type="text/css">
div#menu_div__MODULE_ID__{
  font-size: 10px;
  position: absolute;
  background: #ffffec;
}

span.off__MODULE_ID__ ul{
  display: none;
}

span.on__MODULE_ID__ ul{
  margin: 0px;
  padding: 0px;
  width: 80%;
}

ul li.on__MODULE_ID__{
  background: #ffcccc;
}

div#content_div__MODULE_ID__{
  font-size: 12px;
}

/*
ol{
  margin: 0;
}
*/
</style>
<div id="menu_div__MODULE_ID__"></div>
<div id="content_div__MODULE_ID__"></div>
<script type="text/javascript">
  var prefs__MODULE_ID__ = new _IG_Prefs (__MODULE_ID__);

  var level2__MODULE_ID__ = new Array();
  var level3__MODULE_ID__ = new Array();

  var childrens_id__MODULE_ID__ = new Array();
  var childrens_name__MODULE_ID__ = new Array();

  var content_height__MODULE_ID__;

  function on_menu__MODULE_ID__ (arg){
    arg.className = "on__MODULE_ID__";
    content_height__MODULE_ID__ = content_div__MODULE_ID__.scrollHeight;
    if (menu_div__MODULE_ID__.scrollHeight > content_div__MODULE_ID__.scrollHeight){
      content_div__MODULE_ID__.style.height = menu_div__MODULE_ID__.scrollHeight;
    }
    _IG_AdjustIFrameHeight();
  }

  function off_menu__MODULE_ID__ (arg){
    arg.className = "off__MODULE_ID__";
    content_div__MODULE_ID__.style.height = content_height__MODULE_ID__;
    _IG_AdjustIFrameHeight();
  }

  function save_data__MODULE_ID__(){
    var work2 = "";
    var work3 = "";

    for (var i = 0; i < level2__MODULE_ID__.length; i++){
      work2 += level2__MODULE_ID__[i] + "@";
      work3 += level3__MODULE_ID__[i] + "@";
    }

    prefs__MODULE_ID__.set ("work2", work2);
    prefs__MODULE_ID__.set ("work3", work3);
  }

  function on_select_sub_genre__MODULE_ID__ (id, name){
    content_div__MODULE_ID__.style.height = content_height__MODULE_ID__;
    _IG_AdjustIFrameHeight();
    if (id < 0){
      level2__MODULE_ID__.pop();
      level3__MODULE_ID__.pop();
    } else{
      level2__MODULE_ID__.push (id);
      level3__MODULE_ID__.push (name);
    }
    save_data__MODULE_ID__();
    onLoad__MODULE_ID__();
  }

  function get_nth_child_id__MODULE_ID__ (res, nth){
    if (res.getElementsByTagName ("Child").item (nth) == null){
      return null;
    }
    return res.getElementsByTagName ("Child").item (nth).firstChild.firstChild.nodeValue;
  }

  function get_nth_child_name__MODULE_ID__ (res, nth){
    if (res.getElementsByTagName ("Child").item (nth) == null){
      return null;
    }
    return res.getElementsByTagName ("Child").item (nth).getElementsByTagName ("Short").item (0).firstChild.nodeValue;
  }

  function onLoad__MODULE_ID__(){
    level2__MODULE_ID__.length = 0;
    level3__MODULE_ID__.length = 0;

    if (prefs__MODULE_ID__.getString ("work2").match (/[0-9]+/g) != null){
      level2__MODULE_ID__ = prefs__MODULE_ID__.getString ("work2").match (/[0-9]+/g);
      level3__MODULE_ID__ = prefs__MODULE_ID__.getString ("work3").match (/[^@]+/g);
    }

    if (level2__MODULE_ID__.length == 0){
      level3__MODULE_ID__.length = 0;
      level2__MODULE_ID__.push ("1");
      level3__MODULE_ID__.push ("&#32207;&#21512;");
      save_data__MODULE_ID__();
    }

    childrens_id__MODULE_ID__.length = 0;
    childrens_name__MODULE_ID__.length = 0;

    var url = "http://shopping.yahooapis.jp/ShoppingWebService/V1/categorySearch?&" +
              "appid=qPMhN0Kxg64IvbyejiqKJ4mQog6c4Nmz1JPiGJE.qVyHteSj7lQhb8WrhULGUBT_Rg--&category_id=" +
              level2__MODULE_ID__[level2__MODULE_ID__.length - 1];
    _gel ("menu_div__MODULE_ID__").innerHTML = "";
    _gel ("content_div__MODULE_ID__").innerHTML = "<i>now fetching...</i>";
    _IG_FetchXmlContent (url, function (response){
      if (response == null || typeof (response) != "object" || response.firstChild == null){
        _gel ("content_div__MODULE_ID__").innerHTML = "<i>Invalid data.</i>";
         return;
      }

      for (var i = 0;; i++){
        var work = get_nth_child_id__MODULE_ID__ (response, i);
        if (work == null){
          break;
        }
        childrens_id__MODULE_ID__.push (work);
        childrens_name__MODULE_ID__.push (get_nth_child_name__MODULE_ID__ (response, i));
      }

      url = "http://shopping.yahooapis.jp/ShoppingWebService/V1/categoryRanking?" +
            "appid=qPMhN0Kxg64IvbyejiqKJ4mQog6c4Nmz1JPiGJE.qVyHteSj7lQhb8WrhULGUBT_Rg--&affiliate_type=vc&" +
            "affiliate_id=http%3A%2F%2Fck.jp.ap.valuecommerce.com%2Fservlet%2Freferral%3Fsid%3D2333728%26pid%3D875961490%26vc_url%3D&" +
            "category_id=" +
            level2__MODULE_ID__[level2__MODULE_ID__.length - 1];
      if (prefs__MODULE_ID__.getString ("gender") != "default"){
        url += ("&gender=" + prefs__MODULE_ID__.getString ("gender"));
      }
      if (prefs__MODULE_ID__.getString ("generation") != "default"){
        url += ("&generation=" + prefs__MODULE_ID__.getString ("generation"));
      }
      url += "&period=" + prefs__MODULE_ID__.getString ("spans");
      _IG_FetchXmlContent (url, function (response){
        if (response == null || typeof (response) != "object" || response.firstChild == null){
          _gel ("content_div__MODULE_ID__").innerHTML = "<i>Invalid data.</i>";
           return;
        }

        var menu_html = '<span class="off__MODULE_ID__" onmouseover="on_menu__MODULE_ID__(this);" onmouseout="off_menu__MODULE_ID__(this);">'
                      + level3__MODULE_ID__[level3__MODULE_ID__.length - 1]
                      + "<ul>";
        if (level2__MODULE_ID__.length > 1){
          menu_html += '<li class="off__MODULE_ID__" '
                    + 'onmouseover="this.className=\'on__MODULE_ID__\';" '
                    + 'onclick="on_select_sub_genre__MODULE_ID__(-1,\'\');" '
                    + 'onmouseout="this.className=\'off__MODULE_ID__\';">'
                    + "&lt;-"
                    + "</li>";
        }
        for (i = 0; i < childrens_id__MODULE_ID__.length; i++){
          menu_html += '<li class="off__MODULE_ID__" onmouseover="this.className=\'on__MODULE_ID__\';" onclick="on_select_sub_genre__MODULE_ID__('
                    + childrens_id__MODULE_ID__[i]
                    + ',\''
                    + childrens_name__MODULE_ID__[i]
                    + '\');" onmouseout="this.className=\'off__MODULE_ID__\';">'
                    + childrens_name__MODULE_ID__[i]
                    + "</li>";
        }
        menu_html += "</ul></span>";
        _gel ("menu_div__MODULE_ID__").innerHTML = menu_html;

        var html = '<img src="http://ad.jp.ap.valuecommerce.com/servlet/gifbanner?sid=2333728&pid=875961490" height="1" width="1" Border="0"><br><ol type="1">';

        for (var i = 0; i < prefs__MODULE_ID__.getInt ("items"); i++){
          var item = response.getElementsByTagName ("RankingData").item (i);
          if (item == null){
            break;
          }
          html += '<li><a target = "_blank" href="' +
                  item.getElementsByTagName ("Url").item (0).firstChild.nodeValue +
                  '">' +
                  item.getElementsByTagName ("Name").item (0).firstChild.nodeValue +
                  '</li>';
        }
        html += '</ol><small><a target = "_blank" href="http://developer.yahoo.co.jp/about">Web&#12469;&#12540;&#12499;&#12473; by Yahoo! JAPAN</a></small>';

        _gel ("content_div__MODULE_ID__").innerHTML = html;

        _IG_AdjustIFrameHeight();
      });
    });
  }

  _IG_RegisterOnloadHandler (onLoad__MODULE_ID__);
</script>
]]>
</Content>
</Module>
