<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
		xmlns:f="http://www.flickr.com/services/api/"
		exclude-result-prefixes="f"
                version="2.0">

<xsl:import href="flickr.xsl"/>

<xsl:output method="text" encoding="utf-8"/>

<xsl:strip-space elements="*"/>

<!-- You must specify an f:api_key -->
<xsl:param name="f:api_key" select="''"/>

<!-- You must specify an f:shared_secret and f:auth_token -->
<!-- if you want to use methods that require authentication -->
<xsl:param name="f:shared_secret" select="''"/>
<xsl:param name="f:auth_token" select="''"/>

<xsl:param name="email" select="'ndw@nwalsh.com'"/>

<!-- This parameter is just part of the test case -->
<xsl:param name="username" select="''"/>

<xsl:template match="/">
  <xsl:variable name="user.rsp" as="element()">
    <xsl:call-template name="f:people.findByEmail">
      <xsl:with-param name="find_email" select="$email"/>
    </xsl:call-template>
  </xsl:variable>

  <xsl:variable name="userid" select="$user.rsp/user/@id"/>

  <xsl:call-template name="showsummary">
    <xsl:with-param name="user_id" select="$userid"/>
  </xsl:call-template>

  <xsl:if test="$username != ''">
    <xsl:variable name="user.rsp" as="element()">
      <xsl:call-template name="f:people.findByUsername">
	<xsl:with-param name="username" select="$username"/>
      </xsl:call-template>
    </xsl:variable>

    <xsl:choose>
      <xsl:when test="$user.rsp/@stat='fail'">
	<xsl:message>
	  <xsl:text>Cannot show summary for </xsl:text>
	  <xsl:value-of select="$username"/>
	  <xsl:text>:</xsl:text>
	</xsl:message>
	<xsl:message>
	  <xsl:value-of select="$user.rsp/err/@msg"/>
	</xsl:message>
      </xsl:when>
      <xsl:otherwise>
	<xsl:call-template name="showsummary">
	  <xsl:with-param name="user_id" select="$user.rsp/user/@id"/>
	</xsl:call-template>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:if>
</xsl:template>

<xsl:template name="showsummary">
  <xsl:param name="user_id"/>

  <xsl:variable name="person.rsp" as="element()">
    <xsl:call-template name="f:people.getInfo">
      <xsl:with-param name="user_id" select="$user_id"/>
    </xsl:call-template>
  </xsl:variable>

  <xsl:value-of select="$person.rsp/person/realname"/>
  <xsl:text> has </xsl:text>
  <xsl:value-of select="$person.rsp/person/photos/count"/>
  <xsl:text> photos on Flickr. </xsl:text>
  <xsl:text>&#10;</xsl:text>
</xsl:template>

</xsl:stylesheet>
