<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
    xmlns:date="http://exslt.org/dates-and-times"
    xmlns:gr="http://sopac.ucsd.edu/ns/geodesy/base/geodeticEquipment/gnssReceiver/2005/02"
    xmlns:ga="http://sopac.ucsd.edu/ns/geodesy/base/geodeticEquipment/gnssAntenna/2005/04"
    xmlns:grad="http://sopac.ucsd.edu/ns/geodesy/base/geodeticEquipment/gnssRadome/2005/02"
    xmlns:spm="http://sopac.ucsd.edu/ns/geodesy/reason/procInput/siteProcMetadata/2005/03" xmlns:pmi="http://sopac.ucsd.edu/ns/geodesy/reason/procInput/2005/03">
    <xsl:output method="text" encoding="UTF-8"/>
    <!-- do not print creationdate, antphasecentercat -->
    <xsl:template match="pmi:creationDate"/>
    <xsl:template match="pmi:antPhaseCenterCatalog"/>        
    <xsl:template match="pmi:procMetadataInput"> 
        <!-- need pmi:siteProcMetadata here, and not in template match above, or else we get blank header lines -->       
        <xsl:for-each select="pmi:siteProcMetadata/spm:indivSiteProcMetadata/spm:equipmentMetadataEntry">
            <xsl:text>&#32;</xsl:text>
            <xsl:value-of select="../spm:fourCharacterID"/>
            <xsl:text>&#32;&#32;</xsl:text>
            <!-- need 20 spaces here inside single quotes to ensure 20-character field regardless of site id string length -->
            <xsl:value-of select="substring(concat(../@sopacSiteID, '               '), 1, 16)"/>
            <xsl:text>&#32;&#32;</xsl:text>
            <xsl:variable name="dateIns" select="spm:dateInstalled"/>
            <xsl:value-of select="date:year($dateIns)"/>
            <xsl:text>&#32;</xsl:text>
            <xsl:value-of select="format-number(date:day-in-year($dateIns),'000')"/>
            <xsl:text>&#32;</xsl:text>
            <xsl:value-of select="format-number(date:hour-in-day($dateIns),'00')"/>
            <xsl:text>&#32;</xsl:text>
            <xsl:value-of select="format-number(date:minute-in-hour($dateIns),'00')"/>
            <xsl:text>&#32;</xsl:text>
            <xsl:value-of select="format-number(date:second-in-minute($dateIns),'00')"/>
            <xsl:text>&#32;&#32;</xsl:text>
            <xsl:choose>
                <xsl:when test="spm:dateRemoved">
                    <xsl:variable name="dateRem" select="spm:dateRemoved"/>
                    <xsl:value-of select="date:year($dateRem)"/>
                    <xsl:text>&#32;</xsl:text>
                    <xsl:value-of select="format-number(date:day-in-year($dateRem),'000')"/>
                </xsl:when>
                <xsl:when test="not(spm:dateRemoved)">
                    <xsl:text>9999 999</xsl:text>
                </xsl:when>
            </xsl:choose>
            <xsl:text>&#32;</xsl:text>
            <xsl:choose>
                <xsl:when test="spm:dateRemoved">
                    <xsl:variable name="dateRem" select="spm:dateRemoved"/>
                    <xsl:value-of select="format-number(date:hour-in-day($dateRem),'00')"/>
                    <xsl:text>&#32;</xsl:text>
                    <xsl:value-of select="format-number(date:minute-in-hour($dateRem),'00')"/>
                    <xsl:text>&#32;</xsl:text>
                    <xsl:value-of select="format-number(date:second-in-minute($dateRem),'00')"/>
                </xsl:when>
                <xsl:when test="not(spm:dateRemoved)">
                    <xsl:text>00 00 00</xsl:text>
                </xsl:when>
            </xsl:choose>
            <xsl:text>&#32;&#32;</xsl:text>
            <!-- need leading whitespace if positive ant ht -->
            <xsl:variable name="antHt" select="spm:antennaHeightInfo/ga:value"/>
            <xsl:if test="not (starts-with(string($antHt), '-'))">
                <xsl:text>&#32;</xsl:text>
            </xsl:if>
            <xsl:value-of select="format-number(spm:antennaHeightInfo/ga:value,'0.0000')"/>
            <xsl:text>&#32;&#32;</xsl:text>
            <!-- use ga:vertical if logic required for DH/SL in height code.
                 however it appears that all are DH???, so not required
            <xsl:value-of select="spm:antennaHeightInfo/ga:vertical"/>
            -->
            <xsl:choose>
                <xsl:when test="spm:antennaHeightInfo/ga:referencePoint = 'BPA'">
                    <xsl:text>DHPAB</xsl:text>
                </xsl:when>
                <xsl:when test="spm:antennaHeightInfo/ga:referencePoint = 'BGP'">
                    <xsl:text>DHBGP</xsl:text>
                </xsl:when>
                <xsl:when test="spm:antennaHeightInfo/ga:referencePoint = 'BCR'">
                    <xsl:text>DHBCR</xsl:text>
                </xsl:when>
                <xsl:when test="spm:antennaHeightInfo/ga:referencePoint = 'TCR'">
                    <xsl:text>DHTCR</xsl:text>
                </xsl:when>
            </xsl:choose>
            <xsl:text>&#32;&#32;</xsl:text>
            <xsl:choose>
                <xsl:when test="spm:marker-arpNorthEcc.">
                    <!-- need leading whitespace if positive -->
                    <xsl:variable name="nEcc" select="spm:marker-arpNorthEcc."/>
                    <xsl:if test="not (starts-with(string($nEcc), '-') or $nEcc &gt; 9.999)">
                        <xsl:text>&#32;</xsl:text>
                    </xsl:if>
                    <xsl:value-of select="format-number(spm:marker-arpNorthEcc.,'#0.0000')"/>
                </xsl:when>
                <xsl:when test="not(spm:marker-arpNorthEcc.)">
                    <xsl:text> 0.0000</xsl:text>
                </xsl:when>
            </xsl:choose>
            <xsl:text>&#32;&#32;</xsl:text>
            <xsl:choose>
                <xsl:when test="spm:marker-arpEastEcc.">
                    <!-- need leading whitespace if positive -->
                    <xsl:variable name="eEcc" select="spm:marker-arpEastEcc."/>
                    <xsl:if test="not (starts-with(string($eEcc), '-') or $eEcc &gt; 9.999)">
                        <xsl:text>&#32;</xsl:text>                 
                    </xsl:if>
                    <xsl:value-of select="format-number(spm:marker-arpEastEcc.,'#0.0000')"/>
                </xsl:when>
                <xsl:when test="not(spm:marker-arpEastEcc.)">
                    <xsl:text> 0.0000</xsl:text>
                </xsl:when>
            </xsl:choose>
            <xsl:text>&#32;&#32;</xsl:text>
            <xsl:choose>
                <xsl:when test="spm:siteProcReceiver/gr:igsModelCode">
                    <xsl:value-of select="substring(concat(spm:siteProcReceiver/gr:igsModelCode, '                  '), 1, 20)"/>
                </xsl:when>
                <xsl:when test="not(spm:siteProcReceiver/gr:igsModelCode)">
                    <xsl:text>--------------------</xsl:text>
                </xsl:when>
            </xsl:choose>
            <xsl:text>&#32;&#32;</xsl:text>
            <xsl:choose>
                <xsl:when test="spm:siteProcReceiver/spm:gnssReceiverConfig/gr:firmwareVersion">
                    <xsl:value-of select="substring(concat(spm:siteProcReceiver/spm:gnssReceiverConfig/gr:firmwareVersion, '                   '), 1, 20)"/>
                </xsl:when>
                <xsl:when test="not(spm:siteProcReceiver/spm:gnssReceiverConfig/gr:firmwareVersion)">
                    <xsl:text>--------------------</xsl:text>
                </xsl:when>
            </xsl:choose>
            <xsl:text>&#32;&#32;</xsl:text>
            <!-- can not translate gamit firmware codes here.  leave blank -->
            <xsl:text>-----</xsl:text>
            <xsl:text>&#32;&#32;</xsl:text>
            <!-- receiver sn; leave blank -->
            <xsl:text>--------------------</xsl:text>
            <xsl:text>&#32;&#32;</xsl:text>
            <xsl:choose>
                <xsl:when test="spm:siteProcAntenna/ga:igsModelCode">
                    <xsl:value-of select="substring(concat(spm:siteProcAntenna/ga:igsModelCode, '               '), 1, 15)"/>
                </xsl:when>
                <xsl:when test="not(spm:siteProcAntenna/ga:igsModelCode)">
                    <xsl:text>---------------</xsl:text>
                </xsl:when>
            </xsl:choose>
            <xsl:text>&#32;&#32;</xsl:text>
            <xsl:choose>
                <xsl:when test="spm:siteProcAntDome/grad:igsModelCode">
                    <xsl:value-of select="substring(concat(spm:siteProcAntDome/grad:igsModelCode, '     '), 1, 5)"/>
                </xsl:when>
                <xsl:when test="not(spm:siteProcAntDome/grad:igsModelCode)">
                    <xsl:text>-----</xsl:text>
                </xsl:when>
            </xsl:choose>
            <xsl:text>&#32;&#32;</xsl:text>
            <!-- antenna sn; leave blank -->
            <xsl:text>--------------------</xsl:text>
            <xsl:text>&#10;</xsl:text>
            <!--            </xsl:for-each> -->
        </xsl:for-each>
    </xsl:template>
</xsl:stylesheet>
