package
{
    import mx.core.Application;

    import mx.collections.ArrayCollection;
    import mx.containers.Panel;
    import mx.controls.Alert;
    import mx.controls.DataGrid;
    import mx.controls.Image;
    import mx.controls.Label;
    import mx.controls.TextInput;
    import mx.rpc.events.FaultEvent;
    import mx.rpc.events.ResultEvent;
    import mx.rpc.http.HTTPService;

    import RequestParams;

    public class DataGridApp extends Application
    {
        [Bindable]
        public var dataGrid:DataGrid;
        public var photoFeed:ArrayCollection;
        public var photoService:HTTPService;
        public var searchTerms:TextInput;
        public var vboxImage:Image;
        public var vboxDesc:Label;
        public var popup:Panel;

        function DataGridApp()
        {
        }

        public function requestPhotos():void {
            var params:RequestParams = new RequestParams();
            params.format = 'rss_200_enc';
            params.tags = searchTerms.text;
            photoService.send(params);
        }

        public function photoHandler(event:ResultEvent):void {
            photoFeed= event.result.rss.channel.item as ArrayCollection;
            dataGrid.dataProvider = photoFeed;
            dataGrid.visible = true;
        }

        public function faultHandler(event:FaultEvent):void{
            Alert.show(event.fault.faultCode + " , " + event.fault.faultString);
        }

        public function showPopup(event:Event):void{
            vboxImage.source = photoFeed.getItemAt(event.currentTarget.selectedIndex).content.url
            vboxDesc.text = photoFeed.getItemAt(event.currentTarget.selectedIndex).title.getItemAt(0)
            popup.visible = true;
        }

        public function hidePopup():void{
            popup.visible = false;
            popup.includeInLayout = false;
        }
    }
}
