import mx.data.encoders.Num;
import mx.data.types.Obj;
import templateBook.templateMp3.util.*;
import templateBook.templateMp3.mvc.*
import templateBook.templateMp3.I.*
import templateBook.templateMp3.mvcMp3.*;

import mx.transitions.Tween

/**
* ...
* @author Default
* @version 0.1
*/

class templateBook.templateMp3.mvcMp3.ListView extends AbstractView {
 
	
	var __container:MovieClip
	var __array:Array
	var colorTextRol = "0xFFFFFF"
	var colorTextOut = "0xFFFFFF"
	var mod///model
	var __scroll:ScrollComponents
	var max_track_size:Number = 4
	var __mask:MovieClip
	var __maskHeight:Number=45
	
	public function ListView() {
		
	}
	
///////////////////////////////////////////////////////////////////////////////////////
	
  public function defaultController (model:Observable):Controller {
  return new null///DescController(model)
 }
 
///////////////////////////////////////////////////////////////////////////////////////

function onLoad(){
  var m:Mp3Model=Mp3Model(this.getModel())
  	
}

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

function addMask() {
	__mask = this.createEmptyMovieClip("mcMask", 10)
	Drawing.rectangle(__mask, -10, 0, 140, __maskHeight, ["0xFF0000", 50])
	__container.setMask(__mask)
}

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

function createList() {
	__array=[]
	var m:Mp3Model = Mp3Model(mod)
	
	this.__container=this.createEmptyMovieClip("mcContainer",1)
	
	var old: MovieClip
	for (var i = 0; i < m.__array.length; i++) {
		var obj:Object=m.__array[i]
		
		var row:MovieClip = __container.attachMovie("_rowList", "_rowList" + i, i)
		__array.push(row)
		row.i=i
		row.node=obj.child
		row.t.htmlText = obj.child.firstChild.nodeValue
		row.t.autoSize=true
		row._y = (i == 0) ? 0 : old._y + old._height-2
		///unselect(row)
		row.onPress=Delegate2.create(this,this.onPressRow,row)
		old=row
	}
	
	
	addMask()
	if(__array.length>3){
	addScroll()
	}
	
}

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

function addScroll() {
	
	this.__scroll=ScrollComponents(this.attachMovie("_scrollList","_scrollList_",3,{__backgroundColor:mod.MP3_VOLUME_COLOR_BACKGROUND,__colorCurrent:mod.MP3_VOLUME_COLOR_CURRENT}))
	this.__scroll.addEventListener("onChangeSuwak",this)
	///this.__scroll.addEventListener("onPressSuwak",this)
	//this.__scroll.addEventListener("onReleaseSuwak",this)
	__scroll.__scaleBackground = false;
	__scroll.__rectangleHeightNull = true;
	__scroll.height =  __maskHeight - 12
	var value2=__container._height-__maskHeight-5
	__scroll.firstLast = [0,-value2];
	__scroll._rotation = 0
	__scroll._x = __container._x + 130
	__scroll._y = 5
		
	
	//this.__scroll.mcBackground.onPress=Delegate2.create(this,this.onPressBackground)
	//this.__scroll.mcBackground.onRelease=Delegate2.create(this,this.onReleaseBackground)
	//this.__scroll.mcBackground.useHandCursor=false
	
	
}

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

function onChangeSuwak() {   
	var value:Number = __scroll.getScrollPosition()
	//trace(value)
	__container._y=value
	
}

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

function onPressRow(row:MovieClip) {
	var m:Mp3Model=Mp3Model(this.getModel())
	var node:XMLNode = row.node
	var path = node.attributes.path
	var nr:Number=Number(row.i)
	m.current = nr
	
	select(row)
}

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

function onResize(){
	var m:Mp3Model=Mp3Model(this.getModel())
    this._x=10	
	this._y=55
}

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

function setCurrent(nr_:Number) {
	
	var mc:MovieClip = __array[nr_]
	select(mc)
}

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

function select(mc_:MovieClip) {
	var m:Mp3Model=Mp3Model(this.getModel())
	unSelectAll()
	mc_.mcRadio.gotoAndStop(2)
	mc_.t.textColor = colorTextRol
	
	if(!__mask.hitTest(_root._xmouse,_root._ymouse,true)){
	__scroll.setScrollPosition( -mc_._y+__maskHeight/2-7)
	__scroll.refresh()
	}
}

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

function unselect(mc_:MovieClip) {
	mc_.t.textColor = colorTextOut
	mc_.mcRadio.gotoAndStop(1)
}

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

function unSelectAll() {
	for (var i in __array) {
		var mc:MovieClip = __array[i]
		unselect(mc)
	}
}

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

function onChangedCurrent() {
	var m:Mp3Model = Mp3Model(this.getModel())
	
	if (!__container) {
		createList() 
	}
	
	if(m.__chapter==undefined){
	var nr = m.current
	setCurrent(nr)
	}
}

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

function onInit() {
		var m:Mp3Model = Mp3Model(this.getModel())
	
	if (!__container) {
		createList() 
	}
	
	if(m.__chapter==undefined){
	var nr = m.current
	setCurrent(nr)
	}

}

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

function onSetSize(){
	var m:Mp3Model=Mp3Model(this.getModel())
	onResize()
}

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




	
}