<!--                                                                  -->
<!--  Copyright (C) 2006 RoyaltyShare, Inc.   All Rights Reserved     -->
<!--  $Id$  -->
<!--                                                                  -->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:exslt="http://exslt.org/common">

    <xsl:template name="uiButtonDisabled">
        <xsl:attribute name="disabled" />
    </xsl:template>

    <xsl:template name="uiButtonData">
        <xsl:param name="dataAttrs" />
        <xsl:for-each select="exslt:node-set($dataAttrs)//mapEntry">
            <xsl:attribute name="{name}">
                <xsl:value-of select="value" />
            </xsl:attribute>
        </xsl:for-each>
    </xsl:template>

    <xsl:template name="uiButtonClasses">
        <xsl:param name="size" select="'default'"/>
        <xsl:param name="type" select="'default'"/>
        <xsl:param name="className" select="''"/>
        <xsl:param name="disabled" select="'false'"/>
        <xsl:param name="active" select="'false'"/>
        <xsl:param name="title" select="''"/>
        <xsl:param name="content" select="''"/>

        <xsl:attribute name="class">
            <xsl:text>Button Button-type-</xsl:text><xsl:value-of select="$type" />
            <xsl:text> Button-size-</xsl:text><xsl:value-of select="$size" />
            <xsl:if test="$disabled = 'true'">
                <xsl:text> Button-disabled</xsl:text>
            </xsl:if>
            <xsl:if test="$active = 'true'">
                <xsl:text> Button-active</xsl:text>
            </xsl:if>
            <xsl:if test="$className != ''">
                <xsl:text> </xsl:text><xsl:value-of select=" $className" />
            </xsl:if>
            <xsl:if test="$title != ''">
                <xsl:text> js-tooltip</xsl:text>
            </xsl:if>
            <xsl:if test="$content = ''">
                <xsl:text> Button-only-icon</xsl:text>
            </xsl:if>
        </xsl:attribute>
    </xsl:template>

    <xsl:template name="uiButtonContent">
        <xsl:param name="iconLeftType" select="''"/>
        <xsl:param name="iconRightType" select="''"/>
        <xsl:param name="content"/>

        <xsl:if test="$iconLeftType != ''">
            <span class="Button-icon-wrapper Button-icon-wrapper-left">
                <xsl:call-template name="icon">
                    <xsl:with-param name="type" select="$iconLeftType" />
                </xsl:call-template>
            </span>
        </xsl:if>
        <span class="Button-content">
            <xsl:value-of select="$content" />
        </span>
        <xsl:if test="$iconRightType != ''">
            <span class="Button-icon-wrapper Button-icon-wrapper-right">
                <xsl:call-template name="icon">
                    <xsl:with-param name="type" select="$iconRightType" />
                </xsl:call-template>
            </span>
        </xsl:if>
    </xsl:template>

    <xsl:template name="uiButton">
        <xsl:param name="iconLeftType" select="''"/>
        <xsl:param name="iconRightType" select="''"/>
        <xsl:param name="type" select="'default'"/>
        <!-- type = 'text' | 'danger' | 'primary' | 'default' -->
        <xsl:param name="disabled" select="'false'"/>
        <xsl:param name="active" select="'false'"/>
        <xsl:param name="url" />
        <xsl:param name="content"/>
        <xsl:param name="onClick"/>
        <xsl:param name="size" select="'default'"/>
        <!-- size = 'small' | 'default' | 'large' | -->
        <xsl:param name="elemType" select="'button'"/>
        <!-- elemType = 'button' | 'submit' | -->
        <xsl:param name="className" select="''" />
        <xsl:param name="id" select="''" />
        <xsl:param name="name" select="''" />
        <xsl:param name="form" select="''" />
        <xsl:param name="dataAttrs" select="''" />
        <xsl:param name="title" select="''" />
        <xsl:param name="value" select="''" />

        <xsl:variable name="buttonValue">
            <xsl:choose>
                <xsl:when test="$value != ''">
                    <xsl:value-of select="$value"  />
                </xsl:when>
                <xsl:otherwise>
                    <xsl:value-of select="$content"  />
                </xsl:otherwise>
            </xsl:choose>
        </xsl:variable>

        <xsl:choose>
            <xsl:when test="$url != ''">
                <a class="Button">
                    <xsl:if test="$active != 'true' and $disabled != 'true'">
                        <xsl:attribute name="href">
                            <xsl:value-of select="$url" />
                        </xsl:attribute>
                    </xsl:if>
                    <xsl:if test="$id != ''">
                        <xsl:attribute name="id">
                            <xsl:value-of select="$id" />
                        </xsl:attribute>
                    </xsl:if>
                    <xsl:if test="$title != ''">
                        <xsl:attribute name="title">
                            <xsl:value-of select="$title" />
                        </xsl:attribute>
                    </xsl:if>

                    <xsl:if test="$name != ''">
                        <xsl:attribute name="name">
                            <xsl:value-of select="$name" />
                        </xsl:attribute>
                    </xsl:if>
                    <xsl:call-template name="uiButtonClasses">
                        <xsl:with-param name="type" select="$type" />
                        <xsl:with-param name="size" select="$size" />
                        <xsl:with-param name="disabled" select="$disabled" />
                        <xsl:with-param name="className" select="$className" />
                        <xsl:with-param name="active" select="$active" />
                        <xsl:with-param name="title" select="$title" />
                        <xsl:with-param name="content" select="$content" />
                    </xsl:call-template>
                    <xsl:call-template name="uiButtonContent">
                        <xsl:with-param name="iconLeftType" select="$iconLeftType"/>
                        <xsl:with-param name="iconRightType" select="$iconRightType"/>
                        <xsl:with-param name="content" select="$content"/>
                    </xsl:call-template>
                </a>
            </xsl:when>
            <xsl:otherwise>
                <button type="button" class="Button" value="{$buttonValue}">
                    <xsl:if test="$dataAttrs != ''">
                        <xsl:call-template name="uiButtonData">
                            <xsl:with-param name="dataAttrs" select="$dataAttrs"/>
                        </xsl:call-template>
                    </xsl:if>
                    <xsl:if test="$title != ''">
                        <xsl:attribute name="title">
                            <xsl:value-of select="$title" />
                        </xsl:attribute>
                    </xsl:if>
                    <xsl:if test="$form != ''">
                        <xsl:attribute name="form">
                            <xsl:value-of select="$form" />
                        </xsl:attribute>
                    </xsl:if>

                    <xsl:if test="$id != ''">
                        <xsl:attribute name="id">
                            <xsl:value-of select="$id" />
                        </xsl:attribute>
                    </xsl:if>

                    <xsl:if test="$name != ''">
                        <xsl:attribute name="name">
                            <xsl:value-of select="$name" />
                        </xsl:attribute>
                    </xsl:if>

                    <xsl:call-template name="uiButtonClasses">
                        <xsl:with-param name="type" select="$type" />
                        <xsl:with-param name="size" select="$size" />
                        <xsl:with-param name="className" select="$className" />
                        <xsl:with-param name="active" select="$active" />
                        <xsl:with-param name="title" select="$title" />
                        <xsl:with-param name="content" select="$content" />
                    </xsl:call-template>

                    <xsl:if test="$onClick != ''">
                        <xsl:attribute name="onClick">
                            <xsl:value-of select="$onClick" />
                        </xsl:attribute>
                    </xsl:if>

                    <xsl:if test="$disabled = 'true'">
                        <xsl:call-template name="uiButtonDisabled" />
                    </xsl:if>

                    <xsl:attribute name="type">
                        <xsl:value-of select="$elemType" />
                    </xsl:attribute>
                    <xsl:call-template name="uiButtonContent">
                        <xsl:with-param name="iconLeftType" select="$iconLeftType"/>
                        <xsl:with-param name="iconRightType" select="$iconRightType"/>
                        <xsl:with-param name="content" select="$content"/>
                    </xsl:call-template>
                </button>
            </xsl:otherwise>
        </xsl:choose>
    </xsl:template>
</xsl:stylesheet>
