<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="search_css.css"?>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:xforms="http://www.w3.org/2002/xforms/cr" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:ui="ui">
	<head>
		<title>Search</title>
		<style type="text/css">
			group.detailBox {background-color:#ddffdd;border-width:2px;padding:10px;}
			group.searchBox {background-color:#aaffaa;border-width:2px;padding:10px;}
			input {width: 200px;}
		</style>
		<xforms:model id="model">
			<!-- The "database" xml file -->
			<xforms:instance src="search_instance.xml" id="default"/>
			<!-- Temporary UI instance -->
			<xforms:instance id="ui">
				<ui xmlns="ui">
					<caption>Phonebook</caption>
					<phone>
						<firstName/>
						<lastName/>
						<home/>
						<cell/>
					</phone>
					<searchField update="true"/>
					<viewField id="view"/>
				</ui>
			</xforms:instance>
			<xforms:bind nodeset="instance('ui')/ui:phone/*" readonly="../../ui:searchField/@update = 'true'"/>
			<xforms:action ev:event="novell-update">
				<xforms:setvalue ref="instance('ui')/ui:searchField/@update">false</xforms:setvalue>
				<xforms:recalculate/>
				<xforms:setvalue ref="instance('ui')/ui:viewField" value=" instance('default')/phone/lastName[ starts-with( translate( ., 'qwertyuiopasdfghjklzxcvbnm', 'QWERTYUIOPASDFGHJKLZXCVBNM') , translate( instance('ui')/ui:searchField, 'qwertyuiopasdfghjklzxcvbnm', 'QWERTYUIOPASDFGHJKLZXCVBNM') )  ] "/>
				<xforms:setvalue ref="instance('ui')/ui:phone/ui:firstName" value="if(not(string(instance('ui')/ui:viewField)), '',  instance('default')/phone/lastName[ starts-with( ., instance('ui')/ui:viewField) ]/../firstName) "/>
				<xforms:setvalue ref="instance('ui')/ui:phone/ui:lastName" value="if(not(string(instance('ui')/ui:viewField)), '-- No match --', instance('default')/phone/lastName[ starts-with( ., instance('ui')/ui:viewField) ] )"/>
				<xforms:setvalue ref="instance('ui')/ui:phone/ui:home" value="if(not(string(instance('ui')/ui:viewField)), '', instance('default')/phone/lastName[ starts-with( . , instance('ui')/ui:viewField) ]/../home )"/>
				<xforms:setvalue ref="instance('ui')/ui:phone/ui:cell" value="if(not(string(instance('ui')/ui:viewField)), '', instance('default')/phone/lastName[ starts-with( . , instance('ui')/ui:viewField) ]/../cell )"/>
				<xforms:setvalue ref="instance('ui')/ui:searchField/@update">true</xforms:setvalue>
			</xforms:action>
		</xforms:model>
	</head>
	<body>
		<xforms:output ref="instance('ui')/ui:caption"/>
		<xforms:group ref="instance('ui')" class="detailBox">
			<xforms:group ref="ui:phone" class="innerBox">
				<xforms:input ref="ui:firstName">
					<xforms:label>First Name:</xforms:label>
				</xforms:input>
			</xforms:group>
			<xforms:group ref="ui:phone" class="innerBox">
				<xforms:input ref="ui:lastName">
					<xforms:label>Last Name:</xforms:label>
				</xforms:input>
			</xforms:group>
			<xforms:group ref="ui:phone" class="innerBox">
				<xforms:input ref="ui:home">
					<xforms:label>Home number:</xforms:label>
				</xforms:input>
			</xforms:group>
			<xforms:group ref="ui:phone" class="innerBox">
				<xforms:input ref="ui:cell">
					<xforms:label>Cell number:</xforms:label>
				</xforms:input>
			</xforms:group>
		</xforms:group>
		<xforms:group ref="instance('ui')" class="searchBox">
			<xforms:input ref="ui:searchField" id="sss">
				<xforms:label>Last Name Search:</xforms:label>
			</xforms:input>
			<xforms:trigger>
				<xforms:label>Search</xforms:label>
				<xforms:action ev:event="xforms-activate">
					<xforms:dispatch target="model" name="novell-update"/>
				</xforms:action>
			</xforms:trigger>
		</xforms:group>
	</body>
</html>

