package modules.kit
{
	import flash.display.MovieClip;
	import flash.events.Event;
	import classes.matuto.model.Model;
	import classes.matuto.loaders.*;
	import flash.display.MovieClip;
	import flash.events.IOErrorEvent;
	import flash.events.MouseEvent;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.MouseEvent;
	import genericos.*;
	import flash.net.*;
		//Matuto
	import classes.fl.motion.easing.*;
	import classes.greensock.*;
	import classes.matuto.core.*;
	import classes.matuto.core.module.*;
	import classes.matuto.events.*;
	import classes.matuto.interfaces.*;
	import classes.matuto.model.*;
	import classes.matuto.mtween.textinho.*;
	import classes.matuto.ui.*;
	import classes.matuto.utils.display.*;
	import classes.matuto.utils.model.*;	
	import modules.home.*;
	import modules.menu.*;
	import flash.geom.*;
	import genericos.RectangleSprite;
	import com.freshplanet.lib.ui.scroll.mobile.ScrollController;
	import flash.utils.*;
	import classes.fl.motion.easing.*;
	import classes.greensock.*;
	import classes.matuto.core.*;
	import classes.matuto.core.module.*;
	import classes.matuto.events.*;
	import classes.matuto.interfaces.*;
	import classes.matuto.model.*;
	import classes.matuto.mtween.textinho.*;
	import classes.matuto.ui.*;
	import classes.matuto.utils.display.*;
	import classes.matuto.utils.model.*;	
	import modules.home.*;
	import modules.menu.*;
	import flash.geom.*;
	import genericos.RectangleSprite;
	import com.freshplanet.lib.ui.scroll.mobile.ScrollController;
	import flash.filesystem.*;
	import flash.utils.*;
	import flash.media.*;
	import flash.filesystem.*;
	
	public class Kit extends MovieClip 
	{
		
		private var _scroll		:	ScrollController;
		private var container	:	Sprite;
		private var thumbs		:	Array = new Array();
		private var thumbAtual	:	KitItem;
		private var dados:Array = new Array();
		private var tituloAtual:String;
		
		public function Kit() 
		{
			super();
			
			addEventListener(Event.ADDED_TO_STAGE, add);
			addEventListener(Event.REMOVED_FROM_STAGE, remove);
		}
		
		private function remove(e:Event):void 
		{
			removeEventListener(Event.REMOVED_FROM_STAGE, remove);
			_scroll.removeScrollControll();
			_scroll = null;
		}
		
		private function add(e:Event):void 
		{
			removeEventListener(Event.ADDED_TO_STAGE, add);
			
			alpha = 0;
			x = 300;
			TweenMax.to(this,.6,{x:0,autoAlpha:1,ease:Exponential.easeInOut,onComplete:function(){
			}});
			
			container = new Sprite();
			container.y = 118;
			container.x = 10;
			addChild(container);
			
			initContainerScroll();
			
			
		}
		
		private function initContainerScroll():void 
		{
			Model.XML_CONNECT("http://www.gfv.com.br/santajoana/portalmedico/app/downloads/pdfs/pdfs.xml",onCompleteXml);

		}
		
		private function onCompleteXml(e:XML=null)
		{
		
			var list:XMLList = e.data;
			
			//trace(list[0].title);
			//trace(list[0].date);
			//trace(list[0].text);
			
			dados.push("ARCABOUÇO ÉTICO INSTITUCIONAL");
			dados.push("GUIA DE PREPARAÇÃO DO INJETÁVEIS");
			dados.push("KIT DE IMPRESSOS ANESTÉSICOS");
			dados.push("KIT DE IMPRESSOS CIRÚRGICOS");
			dados.push("KIT DE IMPRESSOS CLÍNICOS");
			dados.push("KIT DE IMPRESSOS DA MATERNIDADE");
			dados.push("PADRONIZAÇÃO DA ANTIBIOTICOTERAPIA CIRÚRGICA");
			dados.push("PADRONIZAÇÃO DE MEDICAMENTOS");
			dados.push("PROGRAMA DE ATENDIMENTO DA DOENÇA CEREBROVASCULAR ISQUÊMICA AGUDA");
			dados.push("PROGRAMA DE GERENCIAMENTO DE RISCO");
			dados.push("PROTOCOLO DE CIRÚRGIA SEGURA");
			dados.push("PROTOCOLO DE COMUNICAÇÃO DE EFETIVA");
			dados.push("PROTOCOLO DE CUIDADO AO IDOSO");
			dados.push("PROTOCOLO DE GERENCIAMENTO DA DOR");
			dados.push("PROTOCOLO DE HIGIENIZAÇÃO DAS MÃOS");
			dados.push("PROTOCOLO DE ORIENTAÇÃO PARA PROCEDIMENTO DE TRANSPLANTE DE MEDULA ÓSSEA");
			dados.push("PROTOCOLO DE PREVENÇÃO E TRATAMENTO DAS OCORRÊNCIAS DE QUEDA");
			dados.push("PROTOCOLO DE SÍNDROME CORONARIANA AGUDA");
			dados.push("PROTOCOLO DE TERMINALIDADE E CUIDADOS PALIATIVOS");
			dados.push("PROTOCOLO DE TROMBOEMBOLISMO VENOSO");
			dados.push("REGIMENTO INTERNO DO CORPO CLÍNICO");

			var thumb:KitItem;
			var position:int = 0;
			
			//for each(var i:Object in list)
			for (var i:int = 0; i <list.length(); i++)
			{
				thumb = new KitItem();
				thumb.y = (150) * position;
				
				var obj:Object = new Object();
				obj.position = position+1;
				obj.texto = list[position].titulo;
				obj.link 	= list[position].link;
				thumb.setParams = obj;
				thumb.setModel(i);
				container.addChild(thumb);
				position++;
				thumb.addEventListener(Event.SELECT, onSelectThumb);
				thumb.addEventListener(Event.OPEN, onOpenThumb);
				thumb.addEventListener(Event.CLOSE, onCloseThumb);
				thumb.addEventListener(Event.CONNECT, onConnect);
				
				
				thumbs.push(thumb);
				
			}
			
			var containerViewport:Rectangle = new Rectangle(0, 118,stage.stageWidth,stage.stageHeight);
			this._scroll = new ScrollController();
			this._scroll.horizontalScrollingEnabled = false;
			this._scroll.addScrollControll(container, this, containerViewport);
			
		}
		
		private function onConnect(e:Event):void 
		{
			var thumb:KitItem =  e.currentTarget as KitItem;
			var i:int = thumb.getParams.position;
			tituloAtual = thumb.getParams.texto;
			download(thumb.getParams.link);
			
			/*
			
			var _file:File = flash.filesystem.File.applicationDirectory.resolvePath("pdfs/p"+i+".pdf");
			
			var newFile:File = File.documentsDirectory.resolvePath("pdfs/p"+i+".pdf"); 

			try {
  
			if (_file.exists) 
			{
				
			
				_file.copyTo(newFile); 

				Menu.INSTANCE.DIALOG_OK("PDF em seus documentos.");
				
			}else {
				
				
				
			}
			}
			catch(error:Error){

				Menu.INSTANCE.DIALOG_OK("PDF esta em seus documentos.");

			}
			
			*/
			
		}
		
		
		public function download(url:String):void {

			var loader:URLLoader = new URLLoader();
			loader.dataFormat = URLLoaderDataFormat.BINARY;
			loader.addEventListener(IOErrorEvent.IO_ERROR,function(e:IOErrorEvent):void{
			});
			loader.addEventListener(Event.COMPLETE,downloadComplete);
			loader.load(new URLRequest(url));         
			
		}
         

		private function downloadComplete(event:Event):void
		{
		
			try {
				
				var file:File		=  File.documentsDirectory.resolvePath(tituloAtual+".pdf"); 
				var ba:ByteArray  	= event.target.data as ByteArray;
				var fileStream:FileStream = new FileStream();
				fileStream.addEventListener(IOErrorEvent.IO_ERROR,function(e:IOErrorEvent):void{
	
				});
				
				fileStream.open(file, FileMode.WRITE);  
				fileStream.writeBytes(ba);  
				fileStream.addEventListener(Event.CLOSE, fileClosed);  
			
				fileStream.close();
				
				Menu.INSTANCE.DIALOG_OK("PDF em seus documentos.");

				
			}
			catch(e:Error){

				Menu.INSTANCE.DIALOG_OK("PDF em seus documentos.");

			}
		}
		
		private function fileClosed(e:Event):void 
		{
			
		}
		
	
		private function onSelectThumb(e:Event):void 
		{
			var thumb:KitItem =  e.currentTarget as KitItem;
			

			
		}		
		
		private function onOpenThumb(e:Event):void 
		{
			var thumb:KitItem =  e.currentTarget as KitItem;
			onOpen(thumb);
		}		
		
		
		private function onOpen(thumb:KitItem):void 
		{
			
			for each(var item:KitItem in thumbs)
			{
				
				if (item.getParams.position > thumb.getParams.position)
				{
					TweenMax.to(item, .3, {overwrite:true,y:item.y+300,delay:0, ease:Exponential.easeInOut } );
				}
				
				
			}
			
		}
		
		private function onCloseThumb(e:Event):void 
		{
			

			var thumb:KitItem =  e.currentTarget as KitItem;
			
			for each(var item:KitItem in thumbs)
			{
				if (item.getParams.position > thumb.getParams.position)
				{
					TweenMax.to(item, .3, {y:item.y-300, ease:Exponential.easeInOut } );
				}
			}
		
		}
		
	
		
	}//END CLASS

}