var GuideTip  = jindo.$Class({
	$init : function(config){
		this.tip = config.tip || {};
		this.never = config.never || {};
		this.selectList = config.selectList || {};
		this.listBtn = config.listBtn || {};
		this.currSelect = config.currSelect || {};
		this.sendBtn = config.sendBtn || {};
		this.time = null;

		this.bindEvents();
	},
	bindEvents : function(){
		this._handlers.setTipShow.call(this);
		this._handlers.showTipSelectList.call(this);
		this._handlers.setTipTxt.call(this);
		this._handlers.neverClick.call(this);
	},
	_handlers : {
		setTipShow : function(){
			var _this = this;
			var cookie = new jindo.$Cookie();

			jindo.$Fn(function(){
				clearTimeout(_this.time);
				return;
			}).attach(this.tip, 'mouseover');

			jindo.$Fn(function(){
				_this.time = setTimeout(function(){
					jindo.$Element(_this.tip).css('display', 'none');
					if(_this.never.checked){
						cookie.set('tip_neverShow', 'true', 3600, '' , '');
						_this.never.checked = false;
					}else{
						cookie.set('tipShow', 'true', 1, '' , '');
					}
				}, 5000);
			}).attach(this.tip, 'mouseout');

			if(cookie.get('tip_neverShow') == 'true'){
				jindo.$Element(this.tip).css('display', 'none');
				return;
			}

			if(cookie.get('tipShow') == null){
				jindo.$Element(_this.tip).css('display', 'block');
				_this.time = setTimeout(function(){
					jindo.$Element(_this.tip).css('display', 'none');
					if(_this.never.checked){
						cookie.set('tip_neverShow', 'true', 3600, '' , '');
						_this.never.checked = false;
					}else{
						cookie.set('tipShow', 'true', 1, '' , '');
					}
				}, 5000);
			}else{
				jindo.$Element(this.tip).css('display', 'none');
			}

		},
		showTipSelectList : function(){
			var _this = this;
			var listNodes = this.selectList.childNodes;

			if(!listNodes) return;
			jindo.$Fn(function(e){
				_this.selectList.style.display = (_this.selectList.style.display == 'block') ? 'none' : 'block';
				e.stop();
			}).attach(this.listBtn, 'click');

			jindo.$Fn(function(e){
				_this.selectList.style.display = (_this.selectList.style.display == 'block') ? 'none' : 'block';
				e.stop();
			}).attach(this.currSelect, 'click');

			jindo.$Fn(function(){
				jindo.$Element(_this.selectList).css('display', 'none');
			}).attach(document, 'click');

			for(var i = 0, l = listNodes.length; i < l; i++){
				jindo.$Fn(function(e){
					jindo.$Element(e.currentElement).addClass('item-select item-highlight');
					e.stop();
				}).attach(listNodes[i], 'mouseover');

				jindo.$Fn(function(e){
					jindo.$Element(e.currentElement).removeClass('item-select item-highlight');
					e.stop();
				}).attach(listNodes[i], 'mouseout');

				jindo.$Fn(function(e){
					_this.currSelect.innerHTML = e.currentElement.innerHTML;
					jindo.$Element(_this.selectList).css('display', 'none');
					jindo.$Element(e.currentElement).removeClass('item-select item-highlight');

					var questID = e.currentElement.getAttribute('questId');
					var answerID = e.currentElement.getAttribute('answerId');

					_this.sendBtn.setAttribute('questId', questID);
					_this.sendBtn.setAttribute('answerId', answerID);
					e.stop();
				}).attach(listNodes[i], 'click');
			};
		},
		setTipTxt : function(){
			var _this = this;
			jindo.$Element(_this.tip).css('display', 'none');
			
			var url = '/dailyquestion.nhn';

			jindo.$Fn(function(e){
				var ajax = $Ajax(url, {
					onload : function(res){}
				});
				ajax.request({
					m : 'answer',
					quesId : _this.sendBtn.getAttribute('questId'),
					anId : _this.sendBtn.getAttribute('answerId'),
					neverCheck : _this.never.getAttribute('value')
				});
				e.stop();
			}).attach(this.sendBtn, 'click');
		},

		neverClick : function(){
			var _this = this;
			jindo.$Fn(function(e){
				if (_this.never.getAttribute('value') == '0'){
					_this.never.getAttribute('value') = '1';
				}else{
					_this.never.getAttribute('value') = '0';
				}

			}).attach(this.never, 'click');
		}
	}
});