import mx.transitions.Tween;
import mx.transitions.easing.Strong
import templateBook.mvctemplate.*
import templateBook.mvc.*
import templateBook.I.*
import flash.display.BitmapData
import templateBook.util.Observable
import templateBook.Configuration
   
class templateBook.mvctemplate.PreloaderMultipleView extends AbstractView {
	  
	var t:TextField                               //text field
    var __nr:Number=1                             //current page
	var __container:MovieClip                     //container
	var __containerPage:MovieClip                 //containerPage
	var preloader:MovieClip                       //preloader
	var tween:Tween                               //tween
	var inter:Number                              //handler for setinterval
	
////////////////////////////////////////////////////////////////////////////////////////////////
	
	function Preloader() {
		
	}
	
////////////////////////////////////////////////////////////////////////////////////////////////

   function onLoad() {
	   this.onResize()	 
    }
		
////////////////////////////////////////////////////////////////////////////////////////////

function onResize(){
	var m:BookModel=BookModel(this.getModel())
	this._x = m.__width/2-this._width/2
	this._y = m.__height - 30
}

//////////////////////////////////////////////////////////////////////////////////////

function onLoadImage(obj:Object) {
	var m:BookModel=BookModel(this.getModel())
	var page:PageView = PageView(obj.target)
	var nr:Number = page.nr
 }
 
//////////////////////////////////////////////////////////////////////////////////////

function onLoadProgressPage(obj:Object) {
	var m:BookModel=BookModel(this.getModel())
	var page:PageView = PageView(obj.page)
	var bytesLoaded:Number = Number(obj.bytesLoaded)
	var bytesTotal:Number = Number(obj.bytesTotal)
	var procentPage:Number = int(   (bytesLoaded / bytesTotal) * 100  )	
	
	if(Configuration.REVERSE_BOOK=="false"){
	__nr = page.nr
	}else {
	__nr= (m.getPageLength()-page.nr)+1			
	}
		
	var allPagesLength:Number = m.getPageLength()
	var barWidth:Number = (m.loadedPage / allPagesLength) * m.__width
	var procent:Number = Math.round((m.loadedPage / allPagesLength) * 100)
	
    progress(procent,__nr)
	
}
 
///////////////////////////////////////////////////////////////////////////////////////

function progress(procent:Number, nr:Number) {
	preloader.t.autoSize = true
	
	var t:String=Configuration.PRELOADER_MULTIPLE_TEXT
	t = t.split("$procent$").join(String(procent))
	t = t.split("$nr$").join(String(nr))
		
	preloader.t.html=true
	preloader.t.htmlText = t
	preloader.t.textColor = Configuration.PRELOADER_MULTIPLE_TEXT_COLOR
	NewColor.setColor(preloader.bcg, Configuration.PRELOADER_MULTPLE_BCG_COLOR.split(",")[0], 100)
	preloader.bcg._alpha = Configuration.PRELOADER_MULTPLE_BCG_COLOR.split(",")[1]
		
	preloader.bcg._width=preloader.t._width+preloader.t._x*2+2
}
 
///////////////////////////////////////////////////////////////////////////////////////

function onEndLoadPages() {
	progress(100, __nr)
	clearInterval(inter)
	inter=setInterval(this,'hide_preloader',1000)
}

///////////////////////////////////////////////////////////////////////////////////////

function hide_preloader() {
	clearInterval(inter)
	tween.stop()
	tween = new Tween(preloader, '_alpha', Strong.easeIn, preloader._alpha, 0, 1, true)
	tween.onMotionFinished=Delegate2.create(this,end_hide)
	
}

////////////////////////////////////////////////////////////////////////////////////////

function end_hide() {
	preloader._visible=false
}

////////////////////////////////////////////////////////////////////////////////////////

function onStartLoadPages() {
	preloader._visible = true
	clearInterval(inter)
	inter=setInterval(this,'show_preloader',5000)
}

//////////////////////////////////////////////////////////////////////////////////////////

function show_preloader() {
	clearInterval(inter)
	tween.stop()
	tween=new Tween(preloader, '_alpha', Strong.easeIn, 0, 100, 1, true)
}

//////////////////////////////////////////////////////////////////////////////////////////

	
}