<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" 
	xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
	xmlns:php="http://php.net/xsl" 
	xmlns:my="http://kusoftas.com/my"
	xmlns:func="http://exslt.org/functions"
	xmlns:exsl="http://exslt.org/common"
    extension-element-prefixes="func exsl my"
    exclude-result-prefixes="php">
	<xsl:output method="xml" encoding="utf-8" indent="yes" cdata-section-elements="IndexField"/>

	<xsl:param name="objLabel" />
	<xsl:param name="objTitle" />
	<xsl:param name="objDescription" />
	<xsl:param name="objKeywords" />
	<xsl:param name="objLanguage" />
	<xsl:param name="objSEQ" />
	<xsl:param name="objPID" />
	<xsl:param name="objCode" />
	<xsl:param name="objModel" />
	<xsl:param name="objURL" />
	<xsl:param name="objCreator" />
	<xsl:param name="objCreateDate" />
	<xsl:param name="objEditor" />
	<xsl:param name="objLastModDate" />
	<xsl:param name="objBoost" select="1.0" />
	
	<xsl:template match="/">
		
		<IndexDocument>
			<xsl:attribute name="pid">
				<xsl:value-of select="$objPID"/>
			</xsl:attribute>
			<xsl:attribute name="seq">
				<xsl:value-of select="$objSEQ"/>
			</xsl:attribute>
			<xsl:attribute name="boost">
				<xsl:choose>
					<xsl:when test="$objCode='eshop.item'">
						<xsl:value-of select="1.0*$objBoost"/>
					</xsl:when>
					<xsl:otherwise>
			        	<xsl:value-of select="1.0*$objBoost"/>
			        </xsl:otherwise>
				</xsl:choose>
			</xsl:attribute>
			<IndexField IFname="doc.pid" index="UN_TOKENIZED" store="YES" termVector="YES">
				<xsl:value-of select="$objPID"/>
			</IndexField>
			<IndexField IFname="doc.seq" index="UN_TOKENIZED" termVector="YES">
				<xsl:value-of select="$objSEQ"/>
			</IndexField>
			<xsl:variable name="top">
				<xsl:copy-of select="php:function('getCMSData', 'objectTopic')"/>
			</xsl:variable>
			<xsl:for-each select="exsl:node-set($top)/data/topic">
				<IndexField IFname="doc.top" index="UN_TOKENIZED" termVector="YES">
					<xsl:value-of select="text()"/>
				</IndexField>
			</xsl:for-each>
			<xsl:apply-templates />
			<xsl:call-template name="getDocumentText"/>
		</IndexDocument>
	</xsl:template>
      	
    <xsl:template name="getDocumentText">
		<IndexField IFname="doc.text" index="TOKENIZED" store="YES" termVector="YES">
			<xsl:value-of select="$objLabel"/>
		</IndexField>
		<IndexField IFname="doc.text" index="TOKENIZED" store="YES" termVector="YES">
			<xsl:value-of select="$objTitle"/>
		</IndexField>
		<IndexField IFname="doc.title" index="TOKENIZED" store="YES" termVector="YES">
			<xsl:value-of select="$objTitle"/>
		</IndexField>
		<IndexField IFname="doc.text" index="TOKENIZED" store="YES" termVector="YES">
			<xsl:value-of select="$objDescription"/>
		</IndexField>
		<IndexField IFname="doc.desc" index="TOKENIZED" store="YES" termVector="YES">
			<xsl:value-of select="$objDescription"/>
		</IndexField>
		<IndexField IFname="doc.text" index="TOKENIZED" store="YES" termVector="YES">
			<xsl:value-of select="$objKeywords"/>
		</IndexField>
		<IndexField IFname="doc.keyw" index="TOKENIZED" store="YES" termVector="YES">
			<xsl:value-of select="$objKeywords"/>
		</IndexField>
		<IndexField IFname="doc.text" index="TOKENIZED" termVector="YES">
			<xsl:value-of select="$objLanguage"/>
		</IndexField>
		<IndexField IFname="doc.lang" index="TOKENIZED" termVector="YES">
			<xsl:value-of select="$objLanguage"/>
		</IndexField>
		<xsl:variable name="text">
			<xsl:value-of select="php:function('getCMSData', 'objectText')"/>
		</xsl:variable>
		<IndexField IFname="doc.text" index="TOKENIZED" store="YES" termVector="YES">
			<xsl:value-of select="$text"/>
		</IndexField>
		<IndexField IFname="doc.date" index="UN_TOKENIZED" termVector="YES">
			<xsl:value-of select="substring($objLastModDate,1,10)"/>
		</IndexField>
    </xsl:template>  
     
  	<xsl:template match="/objectDatastreams/datastream[@code='eco.met.hdr']">   	    	
    	
    	<xsl:variable name="stream">
			<xsl:copy-of select="php:function('getCMSData', 'streamXML', string(@dsid))"/>
		</xsl:variable>
		<IndexField IFname="item.text" index="TOKENIZED" store="YES" boost="1.0" termVector="YES">
			<xsl:value-of select="exsl:node-set($stream)/data/title"/>
		</IndexField>
		<IndexField IFname="item.text" index="TOKENIZED" store="YES" boost="1.0" termVector="YES">
			<xsl:value-of select="exsl:node-set($stream)/data/description"/>
		</IndexField>
		<xsl:for-each select="exsl:node-set($stream)/data/manufacturer">
			<IndexField IFname="item.manufacturer" index="UN_TOKENIZED" boost="1.0" termVector="YES">
				<xsl:value-of select="key"/>
			</IndexField>
			<IndexField IFname="item.text" index="TOKENIZED" termVector="YES">
				<xsl:value-of select="value"/>
			</IndexField>
		</xsl:for-each>
		<xsl:for-each select="exsl:node-set($stream)/data/identifier">		
			<IndexField IFname="item.identifier" index="UN_TOKENIZED" termVector="YES">
				<xsl:value-of select="key"/>
			</IndexField>
			<IndexField IFname="item.text" index="TOKENIZED" termVector="YES">
				<xsl:value-of select="value"/>
			</IndexField>
		</xsl:for-each>
  	</xsl:template>
  	
  	<xsl:template match="/objectDatastreams/datastream[@code='eco.met.spe']">   	    	   	
    	<xsl:variable name="stream">
			<xsl:copy-of select="php:function('getCMSData', 'streamXML', string(@dsid))"/>
		</xsl:variable>
		<xsl:for-each select="exsl:node-set($stream)/data/group">
			<xsl:for-each select="item">
				<IndexField IFname="item.text" index="TOKENIZED" termVector="YES">
					<xsl:value-of select="concat(key, ' ', value)"/>
				</IndexField>
			</xsl:for-each>		
		</xsl:for-each>
  	</xsl:template>
  	
  	<xsl:template match="/objectDatastreams/datastream[@code='eco.con.txt']">  	    	   	
    	<xsl:variable name="stream">
    		<xsl:value-of select="php:function('getCMSData', 'streamText', string(@dsid))"/>
		</xsl:variable>
		<IndexField IFname="item.text" index="TOKENIZED" termVector="YES">
			<xsl:value-of select="$stream"/>
		</IndexField>
  	</xsl:template>
  	
</xsl:stylesheet>