//Event.observe(window, "load", leftInit, false);

var node
var setting
function leftInit()
{
	/* FAQ ´õº¸±â */
	node = new leftSlide("faqNodeView", "faqNodeBtn", "/demo/faq/FaqNodeList.jsp");
	/* ¼³Á¤ */
	setting = new leftSlide("settingView", "settingBtn", "/demo/include/ConfigPage.jsp");	
}

var leftSlide = Class.create();

leftSlide.prototype = 
{
	initialize: function(element, btn, url)
	{
		var originalOffset = Position.cumulativeOffset($(btn));
		this.originalLeft  = originalOffset[0];
		this.originalTop = originalOffset[1];
		this.hidden = true;
		this.height = 0;
		this.left = 0;
		
		this.moveLeft = 0;
		this.element = $(element);
		this.element.setStyle({position:"absolute", clip:"rect(0px,0px,0px,0px)"});
		this.url = url;
		
		Event.observe(btn, "click", this.startSlide.bindAsEventListener(this), false);
	},
	startSlide: function()
	{
		var myAjax = new Ajax.Request(this.url,
			{method: "post", parameters: "", onComplete: this.pageResult.bindAsEventListener(this)}
		);
	},
	pageResult: function(response)
	{
		var str = response.responseText;
		this.element.innerHTML = str;
		
		var elementDimensions = this.element.getDimensions();
		this.height = elementDimensions.height;
		this.left = elementDimensions.width;
		
		this.moveLeft = this.originalLeft - this.left;
		this.element.setStyle({top: this.originalTop + "px", left: this.moveLeft + "px"});
		if (this.hidden) 
		{
			this.showSlide();
		}
		else 
		{
			this.hideSlide();
		}
	},
	showSlide: function() 
	{
		this.moveLeft += 20;
		var clipLeft = (this.originalLeft  - this.moveLeft);
		var clip = "rect(0px, "+ this.left + "px, " + this.height + "px, " + clipLeft + "px)";
		this.element.style.clip = clip;
		this.element.setStyle({top: this.originalTop + "px", left: this.moveLeft + "px"});
		if (this.moveLeft >= this.originalLeft) 
		{
			this.hidden = false;
		} 
		else 
		{
			setTimeout(this.showSlide.bindAsEventListener(this), 10);
		}
	},
	hideSlide: function() 
	{
		this.moveLeft -= 20;
		var clipLeft = (this.originalLeft  - this.moveLeft);
		var clip = "rect(0px, "+ this.left + "px, " + this.height + "px, " + clipLeft + "px)";
		this.element.style.clip = clip;
		this.element.setStyle({top: this.originalTop + "px", left: this.moveLeft + "px"});
		if (this.moveLeft <= this.originalLeft - this.left) 
		{
			this.hidden = true;
		} 
		else 
		{
			setTimeout(this.hideSlide.bindAsEventListener(this), 10);
		}
	} 
}

function closeNode() 
{
	node.hideSlide();
}

function closeSetting() 
{
	setting.hideSlide();
}
  
