extend(Button, createjs.Container);

// Параметры Button:
// pod - подложка
// icon - иконка
// font - шрифт надписи
// txt - текст надписи
// txtX - координата Х надписи
// txtY - координата Y надписи
// on - иконка для включенного состояния
// off - иконка для выключенного состояния
// i - иконка2
function Button(p, json)
{
	this.initialize();
//---------------------//
	var jso = json ? json : 1
	var podl = p.pod ? p.pod : null
	var currentAnimation
	if(podl){
		var pp = new createjs.Sprite(jsons["JSON" + jso]);
		pp.gotoAndStop(podl);
		var pSc = p.podScale ? p.podScale : 1
		pp.scaleX = pp.scaleY = pSc
		this.addChild(pp);
	}

	var nam = p.icon ? p.icon : null
	if(nam){
		var b = new createjs.Sprite(jsons["JSON" + jso]);
		b.gotoAndStop(nam);
	this.addChild(b);
	}

	var ref = p.refTxt ? p.refTxt : "Center"
	var text = p.font ? new Text(jsons["JSON2"], p.font, p.refTxt, 20) : null
	var t = p.txt ? p.txt : null
	if(text && t){
		text.setText(t)
		text.x = p.txtX ? p.txtX/__koefDisplay : this.getBounds().width/2
		text.y = p.txtY ? p.txtY/__koefDisplay : this.getBounds().height/2 - text.getBounds().height
		// dragAndDrop(text)
		this.addChild(text)
	}

	var _on, _off;
	if(p.on){
		_on = new createjs.Sprite(jsons["JSON" + jso]);
		_on.gotoAndStop(p.on);
		_on.x = p.onX ? p.onX/__koefDisplay : 0
		_on.y = p.onY ? p.onY/__koefDisplay : 0
		this.addChild(_on)
		// dragAndDrop(_on)
		if(p.off){
			_off = new createjs.Sprite(jsons["JSON" + jso]);
			_off.gotoAndStop(p.off);
			_off.x = p.offX ? p.offX/__koefDisplay : 0
			_off.y = p.offY ? p.offY/__koefDisplay : 0
			this.addChild(_off)
			// dragAndDrop(_off)
		}
	}

	var _icon, _icon2;
	if(p.i){
		_icon = new createjs.Sprite(jsons["JSON" + jso]);
		_icon.gotoAndStop(p.i);
		this.addChild(_icon)
		_icon.x = p.iconX ? p.iconX/__koefDisplay : this.getBounds().width/2 - _icon.getBounds().width/2
		_icon.y = p.iconY ? p.iconY/__koefDisplay : this.getBounds().height/2 - _icon.getBounds().height/2
		var icSc = p.iconScale ? p.iconScale : 1
		var icScX = p.iconScaleX ? p.iconScaleX : 1
		_icon.scaleX = _icon.scaleY = icSc
		_icon.scaleX = icScX
		_icon.rotation = p.rotateIcon ? p.rotateIcon : 0
		// dragAndDrop(_icon)
	}
	if(p.i2){
		_icon2 = new createjs.Sprite(jsons["JSON" + jso]);
		_icon2.gotoAndStop(p.i2);
		_icon2.x = p.iconX ? p.iconX/__koefDisplay : 0
		_icon2.y = p.iconY ? p.iconY/__koefDisplay : 0
		var icSc = p.iconScale ? p.iconScale : 1
		_icon2.scaleX = _icon2.scaleY = icSc
		// dragAndDrop(_icon2)
		this.addChild(_icon2)
		_icon2.visible = false
	}
	if(text)
		this.addChild(text)


// Установка v состояния кнопки
	this.changeFrame = function(v, all){
		if(v == "off"){
			if(_off && _on){
				_off.alpha = 1
				_on.alpha = 0
			}
			if(_icon && _icon2){
				_icon.visible = false
				_icon2.visible = true
			}
			if(all)
				this.alpha = .5
			currentAnimation = "off"
		}else{
			if(_off && _on){
				_off.alpha = 0
				_on.alpha = 1
			}
			if(_icon && _icon2){
				_icon.visible = true
				_icon2.visible = false
			}
			if(all)
				this.alpha = 1
			currentAnimation = "on"
		}
	};
	// this.changeFrame("off")

// Переключение между состояниями кнопки
	this.changeBeetweenAnim = function(a1, a2){
		if(currentAnimation == "off") {
			this.changeFrame("on");
			return "on";
		}else{
			this.changeFrame("off");
			return "off"
		}
	}
// Переключение между иконками
	this.setIcon = function(v){
		if(v == 1){
			_icon.visible = true
			_icon2.visible = false
		}else{
			_icon.visible = false
			_icon2.visible = true
		}
	}

// SetText

	this.setText = function(v){
		text.visible = true
		text.setText(v)
		if(v == -1)
			text.visible = false
	}
}