﻿package comp.iconstate{
	import flash.display.MovieClip;
	import fl.data.DataProvider;
	import flash.events.Event;
	import flash.events.MouseEvent;
	import flash.text.Font;

	
	public class IconStateColorSelector extends MovieClip {
		private var xmlParams:XMLList;

		private var allFonts:Array;
		private var downPos:int = 0;
		private var currentSize:int = 0;
		
		public static const VALUECHANGED:String = "valuechanged";
		
		public function IconStateColorSelector() {
			
		}
		
		public function setData(xml:XMLList) {
			xmlParams = xml;
		}
		
		public function getData():XMLList {
			return xmlParams;
		}
		
		public function init() {
			trace('dfdsf');
			populateIconStates();
			addEvents();
			setDefaultData();			
		}
		
		
		private function populateIconStates() {
			var dp:DataProvider = new DataProvider();
			dp.addItem({label:"Up", data:"Up"});
			dp.addItem({label:"Over", data:"Over"});
			dp.addItem({label:"Down", data:"Down"});
			trace('IconStateCB :: '+IconStateCB);
			IconStateCB.dataProvider = dp;
		}
		
		private function addEvents():void{
			IconStateCB.addEventListener(Event.CHANGE, iconStateChangeHandler);
			FGColorPicker.addEventListener(Event.CHANGE, FGColorChanged);
			BGColorPicker.addEventListener(Event.CHANGE, BGColorChanged);
		}	
		
		private function iconStateChangeHandler(e:Event):void {
			xmlParams.iconState.@selectedState = IconStateCB.selectedLabel;
			if(IconStateCB.selectedLabel=='Up')
			{
			FGColorPicker.selectedColor = xmlParams.color.@iconUpFGColor;
			BGColorPicker.selectedColor =  xmlParams.color.@iconUpBGColor;
			//xmlParams.color.@iconUpFGColor = "0x"+FGColorPicker.selectedColor.toString(16);
			}
			else if(IconStateCB.selectedLabel=='Down')
			{
			FGColorPicker.selectedColor = xmlParams.color.@iconDownFGColor;
			BGColorPicker.selectedColor =  xmlParams.color.@iconDownBGColor;
			//xmlParams.color.@iconDownFGColor = "0x"+FGColorPicker.selectedColor.toString(16);
			}
			else if(IconStateCB.selectedLabel=='Over')
			{
			FGColorPicker.selectedColor = xmlParams.color.@iconOverFGColor;
			BGColorPicker.selectedColor =  xmlParams.color.@iconOverBGColor;
			//xmlParams.color.@iconOverFGColor = "0x"+FGColorPicker.selectedColor.toString(16);
			}
			dispatchEvent(new Event(VALUECHANGED));
		}

		private function FGColorChanged(e:Event):void {
			if(IconStateCB.selectedLabel=='Up')
			{
			//FGColorPicker.selectedColor = xmlParams.color.@iconUpFGColor;
			xmlParams.color.@iconUpFGColor = "0x"+FGColorPicker.selectedColor.toString(16);
			}
			else if(IconStateCB.selectedLabel=='Down')
			{
			//FGColorPicker.selectedColor = xmlParams.color.@iconDownFGColor;
			xmlParams.color.@iconDownFGColor = "0x"+FGColorPicker.selectedColor.toString(16);
			}
			else if(IconStateCB.selectedLabel=='Over')
			{
			//FGColorPicker.selectedColor = xmlParams.color.@iconOverFGColor;
			xmlParams.color.@iconOverFGColor = "0x"+FGColorPicker.selectedColor.toString(16);
			}
			dispatchEvent(new Event(VALUECHANGED));
		}
		private function BGColorChanged(e:Event):void {
			if(IconStateCB.selectedLabel=='Up')
			{
			//BGColorPicker.selectedColor =  xmlParams.color.@iconUpBGColor;
			xmlParams.color.@iconUpBGColor = "0x"+BGColorPicker.selectedColor.toString(16);
			}
			else if(IconStateCB.selectedLabel=='Down')
			{
			//BGColorPicker.selectedColor =  xmlParams.color.@iconDownBGColor;
			xmlParams.color.@iconDownBGColor = "0x"+BGColorPicker.selectedColor.toString(16);
			}
			else if(IconStateCB.selectedLabel=='Over')
			{
			//BGColorPicker.selectedColor =  xmlParams.color.@iconOverBGColor;
			xmlParams.color.@iconOverBGColor = "0x"+BGColorPicker.selectedColor.toString(16);
			}
			dispatchEvent(new Event(VALUECHANGED));
		}
		private function setDefaultData() {
			trace('setDefaultData :: '+xmlParams.iconState.@selectedState);

			if(xmlParams.iconState.@selectedState=='Up')
			{
			FGColorPicker.selectedColor = xmlParams.color.@iconUpFGColor;
			BGColorPicker.selectedColor =  xmlParams.color.@iconUpBGColor;
			IconStateCB.selectedIndex=0;
			}
			else if(xmlParams.iconState.@selectedState=='Over')
			{
			FGColorPicker.selectedColor = xmlParams.color.@iconOverFGColor;
			BGColorPicker.selectedColor =  xmlParams.color.@iconOverBGColor;
			IconStateCB.selectedIndex=1;
			}
			else if(xmlParams.iconState.@selectedState=='Down')
			{
			FGColorPicker.selectedColor = xmlParams.color.@iconDownFGColor;
			BGColorPicker.selectedColor =  xmlParams.color.@iconDownBGColor;
			IconStateCB.selectedIndex=2;
			}
		}
	}
}