<?xml version="1.0" encoding="utf-8"?>
<!--

Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements.  See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License.  You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

-->
<!--
This component is primarily static and is only meant to show what other
pages of the store could look like.

Note that this page was put together in the Design view so you'll see more
hard coded locations and sizes.

Also note when working with a Canvas that using the constraint styles 
(e.g., left, top, right, bottom) can provide better layout predictability than 
using x and y, especially when percentage widths and heights are used.

Width and height are hard-coded in the root tag to help the Design view.
-->
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" xmlns="*" width="990" height="550">
	<mx:Script>
		<![CDATA[
			import mx.controls.Alert;

			public function updateMapImage():void
			{
				mapImage.source = mapCanvas.getStyle('dottedMap');
			}
		]]>
	</mx:Script>
	<mx:HBox width="100%" height="100%" y="0" x="0" styleName="colorPanel">
	
		<mx:VBox width="230" height="100%">
			<mx:Canvas width="100%" height="100%">
			
				<mx:Canvas left="10" top="10" width="100%" height="60" backgroundColor="#ebebe9" styleName="homeSection">
					<mx:Label left="10" top="10" text="Search Developers" height="22" styleName="sectionHeader"/>
					<mx:Button left="168" top="30" label="Go" width="47" height="20" styleName="glass" click="Alert.show('This feature is not implemented in this sample', 'Go')"/>
					<mx:TextInput left="10" top="30" height="20" width="150"/>
				</mx:Canvas>
				
				<mx:Canvas left="10" top="78" width="100%" height="280" backgroundColor="#ffffff" styleName="homeSection">
					<mx:VBox left="10" top="10" width="100%" height="100%" verticalGap="0">
						<mx:Label text="Flex Experts That Can Help You" styleName="sectionHeader"/>
						<mx:HRule height="5" width="197"/>
						<mx:Label text="General" styleName="homeProgramHeader"/>
						<mx:Label text="BlazeDS Experts" fontSize="9"/>
						<mx:Spacer height="8" width="100%"/>
						<mx:Label text="Server-side" styleName="homeProgramHeader"/>
						<mx:Label text="Java, PHP Developers" fontSize="9"/>
						<mx:Spacer height="8" width="100%"/>
						<mx:Label text="Mobile" styleName="homeProgramHeader"/>
						<mx:Label text="Android, IOS and more" fontSize="9"/>
						<mx:Spacer height="8" width="100%"/>
						<mx:Label text="Students" styleName="homeProgramHeader"/>
						<mx:Label text="Free Assistance" fontSize="9"/>
						<mx:Spacer height="8" width="100%"/>
					</mx:VBox>
				</mx:Canvas>
				
				<mx:Canvas left="10" top="366" width="100%" height="174" styleName="homeSection" backgroundColor="#ebebe9">
					<mx:VBox left="10" top="10" width="100%" height="100%" verticalGap="0">
					
						<mx:Label text="Manage My Account" styleName="sectionHeader"/>
						
						<mx:Label text="Phone Number"/>
						
						<mx:HBox width="100%" height="25" horizontalAlign="left" verticalAlign="middle">
							<mx:TextInput height="20" width="40"/>
							<mx:HRule width="8" height="25"/>
							<mx:TextInput height="20" width="40"/>
							<mx:HRule width="8" height="25"/>
							<mx:TextInput height="20" width="40"/>
						</mx:HBox>
						
						<mx:Label text="Password"/>
						<mx:TextInput height="20"/>
						<mx:Spacer height="8" width="100%"/>
						
						<mx:CheckBox label="Remember my phone number" selected="true"/>
						<mx:Spacer height="8" width="100%"/>
						
						<mx:Button label="Login" styleName="glass" height="20" width="55" click="Alert.show('This feature is not implemented in this sample', 'Login')"/>
						
					</mx:VBox>
				</mx:Canvas>
				
			</mx:Canvas>
			
		</mx:VBox>
		
		<mx:VBox width="750" height="100%">
			<mx:Canvas width="100%" height="100%">
			
			    <!-- can't use binding to set the mapImage source because the style isn't available early enough -->
				<mx:Canvas id="mapCanvas" width="100%" height="35%" styleName="homeMap" right="10" top="10">
					<mx:Image id="mapImage" width="487" scaleContent="false" height="100%" alpha="1.0" left="10" top="10"/>
					<mx:Label y="110" text="US Developers . Flex . FlexJS" width="95%" height="40" horizontalCenter="0" fontWeight="bold" fontSize="22" color="#ffffff" fontFamily="Arial" textAlign="center"/>
					<mx:Label text="Learn More &gt;&gt;" width="95" bottom="10" right="10" fontSize="12" fontFamily="Arial"/>
					<mx:Label text="$60/hr" fontSize="20" right="10" top="10" color="#ffffff" fontWeight="bold" fontFamily="Arial"/>
					<mx:Label text="Rates as low as" x="551" top="16" fontSize="12"/>
				</mx:Canvas>
				
				<mx:Canvas width="100%" height="330" backgroundColor="#ffffff" borderStyle="solid" cornerRadius="4" bottom="10" right="10">
					
					<mx:Label left="10" top="10" text="Featured Developers" width="173" height="25" styleName="sectionHeader"/>
					
					<mx:HBox left="0" top="43" width="100%" height="100%">
						
						<mx:VBox width="33%" height="100%">
							
							<mx:Canvas width="100%">
								<mx:Image source="@Embed('/assets/akotter.jpg')" horizontalCenter="0" verticalCenter="0"/>
							</mx:Canvas>
							
							<mx:Canvas width="100%">
								<mx:Text text="Annette Kotter" horizontalCenter="0" id="feat_prod_1" fontWeight="bold" fontSize="12"/>
							</mx:Canvas>
							
						</mx:VBox>
						
						<mx:VBox width="33%" height="100%">
							
							<mx:Canvas width="100%">
								<mx:Image horizontalCenter="0" verticalCenter="0" source="@Embed('/assets/bcrater.jpg')"/>
							</mx:Canvas>
							
							<mx:Canvas width="100%">
								<mx:Text text="Ben Crater" horizontalCenter="0" id="feat_prod_2" fontWeight="bold" fontSize="12"/>
							</mx:Canvas>
							
						</mx:VBox>
						
						<mx:VBox width="33%" height="100%">
							
							<mx:Canvas width="100%">
								<mx:Image horizontalCenter="0" verticalCenter="0" source="@Embed('/assets/jproctor.jpg')"/>
							</mx:Canvas>
							
							<mx:Canvas width="100%">
								<mx:Text text="Jane Proctor" horizontalCenter="0" id="feat_prod_3" fontWeight="bold" fontSize="12"/>
							</mx:Canvas>
							
						</mx:VBox>
						
					</mx:HBox>
					
				</mx:Canvas>
				
			</mx:Canvas>
		
		</mx:VBox>
		
	</mx:HBox>
	
</mx:Canvas>
