﻿<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">

    <xsl:import href="Exercise.xslt"></xsl:import>
    <xsl:import href="CompleteWorkout.xslt"></xsl:import>
    <xsl:import href="AddExerciseAutoSuggestControl.xslt"></xsl:import>
    <xsl:import href="ItemWorkoutHeader.xslt"></xsl:import>
    <xsl:import href="NoExerciseMessage.xslt"></xsl:import>
  <xsl:import href="WorkoutExerciseDetail.xslt"></xsl:import>

    <xsl:output method="xml" indent="yes"/>

    <xsl:key name="distinctSeqNum" match="ItemWorkouts/WorkoutExercises/WorkoutExercise" use="./SeqNum"></xsl:key>

    <xsl:template match="/">
        <xsl:variable name="PortalItemID" select="AjaxRequest/Params/PortalItemID"></xsl:variable>
        <xsl:variable name="ItemID" select="AjaxRequest/ItemWorkouts/Workouts/ItemID"></xsl:variable>
        <xsl:variable name="WorkoutID" select="AjaxRequest/ItemWorkouts/Workouts/WorkoutID"></xsl:variable>
        <xsl:variable name="WorkoutName" select="AjaxRequest/ItemWorkouts/Workouts/WorkoutName"></xsl:variable>
        <xsl:variable name="WorkoutDueDate" select="AjaxRequest/ItemWorkouts/Workouts/WorkoutDueDate"></xsl:variable>
        <xsl:variable name="Status" select="AjaxRequest/ItemWorkouts/Workouts/Status"></xsl:variable>
        <xsl:variable name="StatusID" select="AjaxRequest/ItemWorkouts/Workouts/StatusID"></xsl:variable>
        <xsl:variable name="ResponsiblePerson" select="AjaxRequest/ItemWorkouts/Workouts/ResponsiblePerson"></xsl:variable>
        <xsl:variable name="ProgramName" select="AjaxRequest/ItemWorkouts/Workouts/ProgramName"></xsl:variable>
        <xsl:variable name="HostName" select="AjaxRequest/HostName"></xsl:variable>
        <xsl:variable name="ThumbnailURL" select="AjaxRequest/ItemWorkouts/Workouts/ThumbnailURL"></xsl:variable>
        <xsl:variable name="Exercises" select="AjaxRequest/ItemWorkouts/WorkoutExercises"></xsl:variable>
        <xsl:variable name="TemplateURL" select="AjaxRequest/TemplateURL"/>
        <xsl:variable name="TotalDistance" select="AjaxRequest/ItemWorkouts/Workouts/TotalDistance"></xsl:variable>
        <xsl:variable name="TotalCalories" select="AjaxRequest/ItemWorkouts/Workouts/TotalCalories"></xsl:variable>
        <xsl:variable name="TotalTimeMins" select="AjaxRequest/ItemWorkouts/Workouts/TotalTime"></xsl:variable>
        <xsl:variable name="TotalWorkoutTime" select="AjaxRequest/ItemWorkouts/Workouts/TotalWorkoutTime"></xsl:variable>
        <xsl:variable name="NotesHTML" select="AjaxRequest/NotesHTML"></xsl:variable>        
        <xsl:variable name="BoxYN" select="normalize-space(AjaxRequest/Params/BoxYN)"></xsl:variable>
        <xsl:variable name="WorkoutOperation" select="normalize-space(AjaxRequest/WorkoutOperation)"></xsl:variable>
        <xsl:variable name="ProgramID" select="AjaxRequest/ItemWorkouts/Workouts/ProgramID"></xsl:variable>
        <xsl:variable name="BrandID" select="AjaxRequest/ItemWorkouts/Workouts/BrandID"></xsl:variable>
        <xsl:variable name="BrandName" select="AjaxRequest/ItemWorkouts/Workouts/BrandName"></xsl:variable>
        <!--<xsl:variable name="GoalID" select="AjaxRequest/Params/GoalID"></xsl:variable>-->
        <xsl:variable name="TargetDiv" select="AjaxRequest/Params/TargetDiv"></xsl:variable>
        <xsl:variable name="Origin" select="AjaxRequest/Params/Origin"></xsl:variable>
        <xsl:variable name="Mode" select="AjaxRequest/Params/Mode"></xsl:variable>

        
        <xsl:variable name="GoalID">
            <xsl:choose>
                <xsl:when test="AjaxRequest/Params/GoalID and AjaxRequest/Params/GoalID!=''">
                    <xsl:value-of select="AjaxRequest/Params/GoalID"/>
                </xsl:when>
                    <xsl:when test="not(AjaxRequest/Params/GoalID) and AjaxRequest/ItemWorkouts/Workouts/GoalID!=''">
                <xsl:value-of select="AjaxRequest/ItemWorkouts/Workouts/GoalID"/>                    
                </xsl:when>
                <xsl:otherwise>
                   <xsl:number value="-99"/>                    
                </xsl:otherwise>
            </xsl:choose>
        </xsl:variable>

        <xsl:choose>
            <xsl:when test="$WorkoutOperation = 0">
                <div id="div_{$ItemID}_ItemWorkout_Container">
                    <xsl:if test ="$Mode = 'NotPlanner' and $Origin='Workout'">
                        <div style="width:100%; text-align:right;margin-top:-40px;margin-bottom:20px;margin-left:20px;" id="divFullScreenModeIcon">
                            <img border="0" onclick="workout_ExpandToFullScreen('{$ItemID}','ItemWorkOut');" class="link"
                                 title="Full Screen" src="{$TemplateURL}/Web/Images/full_screen.png" width="20" height="20"></img>
                        </div>
                        <input type="hidden" id="txtWorkoutDisplayMode" value="Min"></input>
                    </xsl:if>
                    <div id="div_{$ItemID}_ItemWorkout" BoxYN="{$BoxYN}" Mode="{$Mode}">
                        <div id="div_{$ItemID}_WorkoutDetail" style="border-bottom:1px solid rgb(56,93,138);">
                            <xsl:call-template name="workoutHeader">
                                <xsl:with-param name="WorkoutOperation" select="AjaxRequest/Params/WorkoutOperation"></xsl:with-param>
                                <xsl:with-param name="WorkoutName" select="AjaxRequest/ItemWorkouts/Workouts/WorkoutName"></xsl:with-param>
                                <xsl:with-param name="WorkoutDueDate" select="AjaxRequest/ItemWorkouts/Workouts/WorkoutDueDate"></xsl:with-param>
                                <xsl:with-param name="Status" select="AjaxRequest/ItemWorkouts/Workouts/Status"></xsl:with-param>
                                <xsl:with-param name="StatusID" select="AjaxRequest/ItemWorkouts/Workouts/StatusID"></xsl:with-param>
                                <xsl:with-param name="ResponsiblePerson" select="AjaxRequest/ItemWorkouts/Workouts/ResponsiblePerson"></xsl:with-param>
                                <xsl:with-param name="ResponsibleID" select="AjaxRequest/ItemWorkouts/Workouts/ResponsibleID"></xsl:with-param>
                                <xsl:with-param name="ProgramName" select="AjaxRequest/ItemWorkouts/Workouts/ProgramName"></xsl:with-param>
                                <xsl:with-param name="ProgramID" select="AjaxRequest/ItemWorkouts/Workouts/ProgramID"></xsl:with-param>
                                <xsl:with-param name="WorkoutID" select="AjaxRequest/ItemWorkouts/Workouts/WorkoutID"></xsl:with-param>
                                <xsl:with-param name="ItemID" select="AjaxRequest/ItemWorkouts/Workouts/ItemID"></xsl:with-param>
                                <xsl:with-param name="StartTime" select="AjaxRequest/ItemWorkouts/Workouts/StartTime"></xsl:with-param>
                                <xsl:with-param name="EndTime" select="AjaxRequest/ItemWorkouts/Workouts/EndTime"></xsl:with-param>
                                <xsl:with-param name="PortalItemID" select="$PortalItemID"></xsl:with-param>
                                <xsl:with-param name="GoalName" select="AjaxRequest/ItemWorkouts/Workouts/GoalName"></xsl:with-param>
                                <xsl:with-param name="GoalID" select="AjaxRequest/ItemWorkouts/Workouts/GoalID"></xsl:with-param>
                                <xsl:with-param name="Mode" select="$Mode"></xsl:with-param>
                                <xsl:with-param name="Origin" select="$Origin"></xsl:with-param>
                              <xsl:with-param name="TemplateURL" select="$TemplateURL"></xsl:with-param>
                            </xsl:call-template>
                        </div>
                     
                        
                        
                      <div id="div_{$ItemID}_WorkoutView" style="margin-top:5px;">                        
                      </div>
                        <div id="div_{$ItemID}_Default_WorkoutView">
                        <xsl:call-template name="ExerciseDetail">
                            <xsl:with-param name="WorkoutName" select="$WorkoutName"></xsl:with-param>
                            <xsl:with-param name="ItemID" select="$ItemID"></xsl:with-param>
                            <xsl:with-param name="StatusID" select="$StatusID"></xsl:with-param>
                            <xsl:with-param name="Exercises" select="$Exercises"></xsl:with-param>
                            <xsl:with-param name="TotalDistance" select="$TotalDistance"></xsl:with-param>
                            <xsl:with-param name="TotalCalories" select="$TotalCalories"></xsl:with-param>
                            <xsl:with-param name="TotalTimeMins" select="$TotalTimeMins"></xsl:with-param>
                            <xsl:with-param name="PortalItemID" select="$PortalItemID"></xsl:with-param>
                            <xsl:with-param name="NotesHTML" select="$NotesHTML"></xsl:with-param>
                            <xsl:with-param name="TotalWorkoutTime" select="$TotalWorkoutTime"></xsl:with-param>
                            <xsl:with-param name="HostName" select="$HostName"></xsl:with-param>
                            <xsl:with-param name="TemplateURL" select="$TemplateURL"></xsl:with-param>
                            <xsl:with-param name="ProgramID" select="$ProgramID"></xsl:with-param>
                            <xsl:with-param name="Mode" select="$Mode"></xsl:with-param>
                            <xsl:with-param name="BrandID" select="$BrandID"></xsl:with-param>
                            <xsl:with-param name="BrandName" select="$BrandName"></xsl:with-param>
                            <xsl:with-param name="GoalID" select="$GoalID"></xsl:with-param>
                            <xsl:with-param name="TargetDiv" select="$TargetDiv"></xsl:with-param>
                        </xsl:call-template>
                        </div>
                    </div>
                </div>
            </xsl:when>
            <xsl:otherwise>
                <xsl:choose>
                    <xsl:when test="$Origin = 'Goal'">
                        <div id="div_item_{$ItemID}_CompleteWorkoutSummary" name="collapsed" >
                            <itemExpansionStatus id="div_item_{$ItemID}_CompleteWorkoutSummary_expansionStatus" status="collapsed"></itemExpansionStatus>
                            <div id="div_{$ItemID}_WorkoutDetail" style="border-bottom:1px solid rgb(56,93,138);">
                                <xsl:call-template name="workoutHeader">
                                    <xsl:with-param name="WorkoutOperation" select="AjaxRequest/Params/WorkoutOperation"></xsl:with-param>
                                    <xsl:with-param name="WorkoutName" select="AjaxRequest/ItemWorkouts/Workouts/WorkoutName"></xsl:with-param>
                                    <xsl:with-param name="WorkoutDueDate" select="AjaxRequest/ItemWorkouts/Workouts/WorkoutDueDate"></xsl:with-param>
                                    <xsl:with-param name="Status" select="AjaxRequest/ItemWorkouts/Workouts/Status"></xsl:with-param>
                                    <xsl:with-param name="StatusID" select="AjaxRequest/ItemWorkouts/Workouts/StatusID"></xsl:with-param>
                                    <xsl:with-param name="ResponsiblePerson" select="AjaxRequest/ItemWorkouts/Workouts/ResponsiblePerson"></xsl:with-param>
                                    <xsl:with-param name="ResponsibleID" select="AjaxRequest/ItemWorkouts/Workouts/ResponsibleID"></xsl:with-param>
                                    <xsl:with-param name="ProgramName" select="AjaxRequest/ItemWorkouts/Workouts/ProgramName"></xsl:with-param>
                                    <xsl:with-param name="ProgramID" select="AjaxRequest/ItemWorkouts/Workouts/ProgramID"></xsl:with-param>
                                    <xsl:with-param name="WorkoutID" select="AjaxRequest/ItemWorkouts/Workouts/WorkoutID"></xsl:with-param>
                                    <xsl:with-param name="ItemID" select="AjaxRequest/ItemWorkouts/Workouts/ItemID"></xsl:with-param>
                                    <xsl:with-param name="StartTime" select="AjaxRequest/ItemWorkouts/Workouts/StartTime"></xsl:with-param>
                                    <xsl:with-param name="EndTime" select="AjaxRequest/ItemWorkouts/Workouts/EndTime"></xsl:with-param>
                                    <xsl:with-param name="PortalItemID" select="AjaxRequest/ItemWorkouts/Workouts/PortalItemID"></xsl:with-param>
                                    <xsl:with-param name="GoalName" select="AjaxRequest/ItemWorkouts/Workouts/GoalName"></xsl:with-param>
                                    <xsl:with-param name="GoalID" select="AjaxRequest/ItemWorkouts/Workouts/GoalID"></xsl:with-param>
                                    <xsl:with-param name="Mode" select="$Mode"></xsl:with-param>
                                    <xsl:with-param name="Origin" select="$Origin"></xsl:with-param>
                                    <xsl:with-param name="TemplateURL" select="$TemplateURL"></xsl:with-param>

                                </xsl:call-template>
                            </div>
                            <div id="div_{$ItemID}_WorkoutView" style="margin-top:5px;"></div>
                            <div id="div_{$ItemID}_Default_WorkoutView">
                                <xsl:call-template name="ExerciseDetail">
                                    <xsl:with-param name="WorkoutName" select="$WorkoutName"></xsl:with-param>
                                    <xsl:with-param name="ItemID" select="$ItemID"></xsl:with-param>
                                    <xsl:with-param name="StatusID" select="$StatusID"></xsl:with-param>
                                    <xsl:with-param name="Exercises" select="$Exercises"></xsl:with-param>
                                    <xsl:with-param name="TotalDistance" select="$TotalDistance"></xsl:with-param>
                                    <xsl:with-param name="TotalCalories" select="$TotalCalories"></xsl:with-param>
                                    <xsl:with-param name="TotalTimeMins" select="$TotalTimeMins"></xsl:with-param>
                                    <xsl:with-param name="PortalItemID" select="$PortalItemID"></xsl:with-param>
                                    <xsl:with-param name="NotesHTML" select="$NotesHTML"></xsl:with-param>
                                    <xsl:with-param name="TotalWorkoutTime" select="$TotalWorkoutTime"></xsl:with-param>
                                    <xsl:with-param name="HostName" select="$HostName"></xsl:with-param>
                                    <xsl:with-param name="TemplateURL" select="$TemplateURL"></xsl:with-param>
                                    <xsl:with-param name="ProgramID" select="$ProgramID"></xsl:with-param>
                                    <xsl:with-param name="Mode" select="$Mode"></xsl:with-param>
                                    <xsl:with-param name="BrandID" select="$BrandID"></xsl:with-param>
                                    <xsl:with-param name="BrandName" select="$BrandName"></xsl:with-param>
                                    <xsl:with-param name="GoalID" select="$GoalID"></xsl:with-param>
                                    <xsl:with-param name="TargetDiv" select="$TargetDiv"></xsl:with-param>
                                </xsl:call-template>
                            </div>
                        </div>
                    </xsl:when>
                    <xsl:otherwise>
                        <div id="div_{$ItemID}_WorkoutDetail" style="border-bottom:1px solid rgb(56,93,138);">
                            <xsl:call-template name="workoutHeader">
                                <xsl:with-param name="WorkoutOperation" select="AjaxRequest/Params/WorkoutOperation"></xsl:with-param>
                                <xsl:with-param name="WorkoutName" select="AjaxRequest/ItemWorkouts/Workouts/WorkoutName"></xsl:with-param>
                                <xsl:with-param name="WorkoutDueDate" select="AjaxRequest/ItemWorkouts/Workouts/WorkoutDueDate"></xsl:with-param>
                                <xsl:with-param name="Status" select="AjaxRequest/ItemWorkouts/Workouts/Status"></xsl:with-param>
                                <xsl:with-param name="StatusID" select="AjaxRequest/ItemWorkouts/Workouts/StatusID"></xsl:with-param>
                                <xsl:with-param name="ResponsiblePerson" select="AjaxRequest/ItemWorkouts/Workouts/ResponsiblePerson"></xsl:with-param>
                                <xsl:with-param name="ResponsibleID" select="AjaxRequest/ItemWorkouts/Workouts/ResponsibleID"></xsl:with-param>
                                <xsl:with-param name="ProgramName" select="AjaxRequest/ItemWorkouts/Workouts/ProgramName"></xsl:with-param>
                                <xsl:with-param name="ProgramID" select="AjaxRequest/ItemWorkouts/Workouts/ProgramID"></xsl:with-param>
                                <xsl:with-param name="WorkoutID" select="AjaxRequest/ItemWorkouts/Workouts/WorkoutID"></xsl:with-param>
                                <xsl:with-param name="ItemID" select="AjaxRequest/ItemWorkouts/Workouts/ItemID"></xsl:with-param>
                                <xsl:with-param name="StartTime" select="AjaxRequest/ItemWorkouts/Workouts/StartTime"></xsl:with-param>
                                <xsl:with-param name="EndTime" select="AjaxRequest/ItemWorkouts/Workouts/EndTime"></xsl:with-param>
                                <xsl:with-param name="PortalItemID" select="AjaxRequest/ItemWorkouts/Workouts/PortalItemID"></xsl:with-param>
                                <xsl:with-param name="GoalName" select="AjaxRequest/ItemWorkouts/Workouts/GoalName"></xsl:with-param>
                                <xsl:with-param name="GoalID" select="AjaxRequest/ItemWorkouts/Workouts/GoalID"></xsl:with-param>
                                <xsl:with-param name="Mode" select="$Mode"></xsl:with-param>
                                <xsl:with-param name="Origin" select="$Origin"></xsl:with-param>
                              <xsl:with-param name="TemplateURL" select="$TemplateURL"></xsl:with-param>
                            </xsl:call-template>
                        </div>
                        <div id="div_{$ItemID}_WorkoutView" style="margin-top:5px;"></div>
                        <div id="div_{$ItemID}_Default_WorkoutView">
                            <xsl:call-template name="ExerciseDetail">
                                <xsl:with-param name="WorkoutName" select="$WorkoutName"></xsl:with-param>
                                <xsl:with-param name="ItemID" select="$ItemID"></xsl:with-param>
                                <xsl:with-param name="StatusID" select="$StatusID"></xsl:with-param>
                                <xsl:with-param name="Exercises" select="$Exercises"></xsl:with-param>
                                <xsl:with-param name="TotalDistance" select="$TotalDistance"></xsl:with-param>
                                <xsl:with-param name="TotalCalories" select="$TotalCalories"></xsl:with-param>
                                <xsl:with-param name="TotalTimeMins" select="$TotalTimeMins"></xsl:with-param>
                                <xsl:with-param name="PortalItemID" select="$PortalItemID"></xsl:with-param>
                                <xsl:with-param name="NotesHTML" select="$NotesHTML"></xsl:with-param>
                                <xsl:with-param name="TotalWorkoutTime" select="$TotalWorkoutTime"></xsl:with-param>
                                <xsl:with-param name="HostName" select="$HostName"></xsl:with-param>
                                <xsl:with-param name="TemplateURL" select="$TemplateURL"></xsl:with-param>
                                <xsl:with-param name="ProgramID" select="$ProgramID"></xsl:with-param>
                                <xsl:with-param name="Mode" select="$Mode"></xsl:with-param>
                                <xsl:with-param name="BrandID" select="$BrandID"></xsl:with-param>
                                <xsl:with-param name="BrandName" select="$BrandName"></xsl:with-param>
                                <xsl:with-param name="GoalID" select="$GoalID"></xsl:with-param>
                                <xsl:with-param name="TargetDiv" select="$TargetDiv"></xsl:with-param>
                            </xsl:call-template>
                        </div>
                    </xsl:otherwise>
                </xsl:choose>

            </xsl:otherwise>
        </xsl:choose>


    </xsl:template>

    <xsl:template name="ExerciseList">
        <xsl:param name="WorkoutID" select="'N/A'"></xsl:param>

        <xsl:for-each select="AjaxRequest/ItemWorkouts/WorkoutExercises/WorkoutExercise[generate-id() = generate-id(key('distinctSeqNum', ./SeqNum))]">
            <xsl:variable name="SeqNum" select="SeqNum"></xsl:variable>
            <xsl:variable name="ExerciseStatusClass">
                <xsl:choose>
                    <xsl:when test="count(../WorkoutExercise[SeqNum = $SeqNum and (StatusID != 4 or not(StatusID))]) = 0">
                        <xsl:text>completed</xsl:text>
                    </xsl:when>
                    <xsl:otherwise>
                        <xsl:text></xsl:text>
                    </xsl:otherwise>
                </xsl:choose>
            </xsl:variable>

            <xsl:variable name="ExerciseSelectedClass">
                <xsl:choose>
                    <xsl:when test="position() = 1">
                        <xsl:text>selectedExercise</xsl:text>
                    </xsl:when>
                    <xsl:otherwise>
                        <xsl:text>link</xsl:text>
                    </xsl:otherwise>
                </xsl:choose>
            </xsl:variable>

            <div id="div_{SeqNum}_Exercises" style="margin-right:30px;margin-bottom:5px;">
                <span id="span_{SeqNum}_Exercise" Status="{$ExerciseStatusClass}" ItemID="{ItemID}" SeqNum="{SeqNum}" class="{$ExerciseSelectedClass} {$ExerciseStatusClass}"
                      onClick="workoutTracker_GetExerciseDetailByID('{ItemID}','div_Exercise_Operations','span_Exercise','{SeqNum}');
                                    workoutTracker_MarkSelectedExerciseGreen('span_{SeqNum}_Exercise','selectedExercise');">
                    <xsl:value-of select="ExerciseName"/>
                    <input type="hidden" name="exercise"></input>
                </span>
            </div>
        </xsl:for-each>
    </xsl:template>

   
</xsl:stylesheet>
