// door.js

var Door = function(id, closeDoorSrc, animationDoorSrc, doorSrc, animationOpenDoorSrc, openDoorSrc) {
	this.imgId = id;
	this.position_x = 0;
	this.position_y = 0;
	this.timerShowID = null;
	this.closeDoorSrc = closeDoorSrc;
	this.animationDoorSrc = animationDoorSrc;
	this.doorSrc = doorSrc;
	this.animationOpenDoorSrc = animationOpenDoorSrc;
	this.openDoorSrc = openDoorSrc;

	// 0 : init   1: door  2: open door
	this.status = 0;

	this.SIZE_WIDTH = 46;
	this.SIZE_HIGHT = 38;

};

Door.prototype = {

	isOnImage: function(x, y)
	{
		imgObj = this.getObject();
		if(this.position_x < x && x < this.position_x + this.SIZE_WIDTH && y < this.position_y+this.SIZE_HIGHT){
			return true;
		}
		return false;
	},

	getStatus: function(){
		return this.status;
	},

	isAnimation: function(){
		if(this.timerShowID != null){
			return true;
		}
		return false;
	},

	getObject: function() {
		return $("#"+this.imgId);
	},

	init: function(x, y)
	{
		this.getObject().attr("src", this.closeDoorSrc);
		this.setImagePosition(x, y);
	},

	setImagePosition: function(x, y)
	{
		this.getObject().attr("src", this.closeDoorSrc);
		this.position_x=x;
		this.position_y=y;
		this.moveImg();
	},

	// クリックした位置に画像を移動する
	moveImg: function() 
	{
		imgObj = this.getObject();
		imgObj.css("left",this.position_x);
		imgObj.css("top",this.position_y);

		$("#debug").html('x='+this.position_x+' : y='+this.position_y);
	},

	clearTimes: function()
	{
		clearTimeout(this.timerShowID);
		this.timerShowID = null;
	},

	showDoorAnimation: function()
	{
		this.clearTimes();

		this.position_x -=35;
		this.position_y -=33;
		this.moveImg();
		this.getObject().attr("src", this.animationDoorSrc);

		var me2 = this;
		this.timerShowID = setTimeout(function(){me2.endAnimationchangeDoorImage();}, 6500);

	},


	endAnimationchangeDoorImage: function()
	{
		this.position_x +=35;
		this.position_y +=33;
		this.moveImg();

		this.changeDoorImage();

		this.clearTimes();

	},


	changeDoorImage: function()
	{
		this.getObject().attr("src", this.doorSrc);
		this.status = 1;

	},

	showOpenDoorAnimation: function()
	{
		this.clearTimes();

//		this.position_x -=35;
		this.position_y -=18;
		this.moveImg();
		this.getObject().attr("src", this.animationOpenDoorSrc);

		var me2 = this;
		this.timerShowID = setTimeout(function(){me2.changeOpenDoorImage();}, 2000);

	},

	changeOpenDoorImage: function()
	{

		this.position_y +=18;
		this.moveImg();

		this.getObject().attr("src", this.openDoorSrc);

		this.status = 2;

		this.clearTimes();
	}

}



