/* ------------------------------------
*
*	Since : 2008-07-24
*	Editor : D_sasaki
*
-------------------------------------*/

var ac_blurAction = function(){
	this.blur();
};


// Set SlideClass Class
var slideClass = function(obj){
	
	// parameter
	this.nowIndex = obj.nowIndex || 0;
	this.width = obj.width;
	this.maxPos = obj.maxPos;
	this.easing = obj.easing || "easeInOutQuart";
	this.speed = obj.speed || 600;
	
	// html element
	this.slideWrapper = obj.slideWrapper || $("#scrollInBg");
	this.slideStage = obj.slideStage;
	this.box = obj.box;
	this.numberNavi = obj.numberNavi;
	this.numberNaviParent = obj.numberNaviParent;
	this.nextNavi = obj.nextNavi;
	this.prevNavi = obj.prevNavi;
	
	//default action	
	this.setHeight();
	
	// set event listener
	this.numberNavi.bind("click",this,this.tabAction);
	this.numberNavi.bind("focus",function(){
		this.blur();
	});
	if(this.prevNavi) {
		this.prevNavi.bind("click",this,this.prevAction);
		this.prevNavi.bind("focus",function(){
			this.blur();
		});
	};
	if(this.nextNavi) {
		this.nextNavi.bind("click",this,this.nextAction);
		this.nextNavi.bind("focus",function(){
			this.blur();
		});
	};
	
	jQuery(document).bind("keydown",this,this.keyAction);
	
}

slideClass.prototype = {
	setHeight : function(){
		var ua = $.browser;
		var height = this.box.height();
		this.slideStage.css("height",height);
				
		if(!ua.safari) {		
			this.slideWrapper.css("height",height);
		}

	},
	slide : function(pos){
		if(this.box.filter(":animated").size()){
			this.box.stop();
		};		
		
		var targetPos = -(pos * this.width);
		this.box.animate(
			 {left : targetPos},
			 this.speed,
			 this.easing
		)

		this.changeClass(this.numberNavi.eq(this.nowIndex));

	},
	toggleArrow : function(){
		if((this.nowIndex != this.maxPos) && (this.nowIndex != 0)){
			
			this.nextNavi.removeClass("on");
			this.prevNavi.removeClass("on");
			
		}else if(this.nowIndex == this.maxPos){
			if(this.maxPos != 0) {
				this.nextNavi.addClass("on");
				this.prevNavi.removeClass("on");
			}
			
		}else if(this.nowIndex == 0){
			
			this.prevNavi.addClass("on");
			this.nextNavi.removeClass("on");
			
		};
		
	},
	changeClass : function(node){
		node
		.addClass("on");
		
		this.numberNavi
		.not(node)
		.removeClass("on");	
	},
	tabAction : function(e){
		var self = e.data;
		self.nowIndex = jQuery(self.numberNavi).index(this);
		self.slide(self.nowIndex);
		if(self.prevNavi && self.nextNavi) {
			self.toggleArrow();
		}
		
		return false;
	},
	prevAction : function(e){
		var self = e.data;
		if(self.nowIndex > 0){
			self.nowIndex--;
			self.slide(self.nowIndex);
			self.toggleArrow();
		};
		return false;
	},
	nextAction : function(e){
		var self = e.data;
		if(self.nowIndex < self.maxPos){
			self.nowIndex++;
			self.slide(self.nowIndex);	
			self.toggleArrow();
		};	
		return false;
	},
	keyAction : function(e){
		var self = e.data
		if(e.keyCode == 37){
			self.prevAction(e);
		}else if(e.keyCode == 39){
			self.nextAction(e);
		//}else if(e.keyCode >= 97 && e.keyCode <= 104){
			//var number = Number(e.keyCode - 97);
			//self.numberNavi.eq(number).click();	
		}else{
			return;	
		}
	}
};


