var StatusTab = {
	bestItemNo: null,

	onMouseOver: function(event) {
		var element = Event.element(event);
		if (element.tagName == 'IMG') {
			element = element.parentNode;
		}
		if (element.tagName == 'A') {
			if (element.className.indexOf('tabOff') >= 0) {
				var tabType = element.id;
				StatusTab.bestItemNo = 0;
				StatusTab.tabTitle(tabType);
				StatusTab.tabContent(tabType);
			}
		}
	},
	
	onMouseOverTop: function(event) {
		var element = Event.element(event);
		if (element.tagName == 'IMG') {
			element = element.parentNode;
		}
		if (element.tagName == 'A') {
			if (element.id.indexOf('bestClick') >= 0) {
				var itemno = parseInt(element.id.substr(9,1));
				StatusTab.bestItemNo = itemno;
				StatusTab.tabContent('infoTab');
			}
		}
	},
	
	tabTitle: function(tabType) {
		for (type in StatusTab.Type) {
			if (type == tabType) {
				$(type).className = 'tabOn '+StatusTab.Type[type].cls;
				$(type).nextSibling.className = 'tabOn';
				$(type).getElementsByTagName('img')[0].src = 'http://md.egloos.com/img/letsreview/'+StatusTab.Type[type].tab.imageOn;
			}
			else {
				$(type).className = 'tabOff '+StatusTab.Type[type].cls;
				$(type).nextSibling.className = 'tabOff';
				$(type).getElementsByTagName('img')[0].src = 'http://md.egloos.com/img/letsreview/'+StatusTab.Type[type].tab.imageOff;
			}
		}
	},
	
	tabContent: function (tabType) {
		if (StatusTab.Type[tabType].item == null) {
			this._getItemList(tabType)
		}
		else {
			this.loadItemInfo(tabType);
		}
	},

	loadItemInfo: function (tabType) {
		var itemid = null;
		var itemList = StatusTab.Type[tabType].item;
		if (tabType == 'infoTab')
			itemid = itemList[this.bestItemNo].itemid;
		else
		{
			var dt = new Date();
			var rand = dt.getMilliseconds() % itemList.length;
			itemid = itemList[rand].itemid;
		}
		this._setItemInfo(tabType, itemid);
	},
	
	showContent: function(tabType, item) {
		var RightElm = document.getElementById('reviewbox_right');
		var LeftElm = document.getElementById('reviewbox_left');
		var LeftInfoElm = document.getElementById('reviewbox_left_infotab');
		var itemList = StatusTab.Type[tabType].item;
		var title = StatusTab.Type[tabType].title;
		if (tabType == 'infoTab')
		{
			RightElm.innerHTML = this._createRightHTMLinfoTab(itemList, this.bestItemNo, title);
			LeftInfoElm.style.display='';
			LeftElm.style.display='none';
			LeftInfoElm.style.visibility='visible';
			LeftElm.style.visibility='hidden';
            Event.observe($('bestClick0'), 'mouseover', StatusTab.onMouseOverTop);
            Event.observe($('bestClick1'), 'mouseover', StatusTab.onMouseOverTop);
            Event.observe($('bestClick2'), 'mouseover', StatusTab.onMouseOverTop);
            Event.observe($('bestClick3'), 'mouseover', StatusTab.onMouseOverTop);
            Event.observe($('bestClick4'), 'mouseover', StatusTab.onMouseOverTop);
		}
		else
		{
			var RForm = document.ReviewForm;
			RForm.itemid.value = item.itemid;
			RForm.itemtitle.value = item.title;
			RForm.tag.value = '렛츠리뷰,'+item.tag;
			RightElm.innerHTML = this._createRightHTML(itemList, title);
			LeftInfoElm.style.display='none';
			LeftElm.style.display='';
			LeftInfoElm.style.visibility='hidden';
			LeftElm.style.visibility='visible';
			LeftElm.innerHTML = this._createLeftHTML(item);
			if (typeof document.ReviewForm2 != "undefined") {
				document.ReviewForm2.trackback_url.value = "http://valley.egloos.com/letsreview/"+item.itemid;
			}
			if (typeof document.ApplicationForm != "undefined") {
				document.ApplicationForm.itemid.value = item.itemid;
			}
			if (typeof document.ApplicationForm != "undefined") {
				document.ApplicationForm2.item_id.value = item.itemid;
			}
		}
	},
	
	_createLeftHTML: function(item) {
		var subTitle = $H(item.subTitle).keys();
		var subValue = $H(item.subTitle).values()
		var html = '<div class="inner_wrap">' +
				'	<span class="thumb"><a href="/review/item.php?id='+item.itemid+'"><img src="'+item.image.main+'" alt="'+item.title+'" title="'+item.title+'" width="150" height="218" /></a></span>' +
				'	<dl class="review_info">' +
				'' +
				'		<dt><img src="'+item.image.title+'" title="'+item.title+'" alt="'+item.title+'" /></dt>' +
				'		<dd class="detail">' +
				'			<ul>';
		for (var i=0; i<subTitle.length; i++) {
			html += '				<li><span>'+subTitle[i]+' : </span>'+subValue[i]+'</li>';
		}
		if (item.status == 2) {
			html += '<li><span>기간 : </span><i class="process">'+item.date['applicationDate']+'</i> <img src="http://md.egloos.com/img/letsreview/icon_progress.gif" class="icon" alt="진행중" title="진행중" /></li>';
		}
		else if (item.status == 1) {
			html += '<li><span>기간 : </span><i class="ready">'+item.date['applicationDate']+'</i> <img src="http://md.egloos.com/img/letsreview/icon_ready.gif" class="icon" alt="준비중" title="준비중" /></li>';
		}
		else {
			html += '<li><span>기간 : </span><i class="end">'+item.date['applicationDate']+'</i> <img src="http://md.egloos.com/img/letsreview/icon_end.gif" class="icon" alt="종료" title="종료" /></li>';
		}
		html += '				<li><span>신청수량 : </span>'+item.winningCount+'개</li>' +
				'			</ul>' +
				'		</dd>' +
				'		<dd class="btn_wrap">'+
				'			<a href="/review/item.php?id='+item.itemid+'" class="detail_vw" title="자세히보기">자세히보기</a>'+
		        '</dd>' ;
		if (item.status == 1) {
		}
		else if (item.status == 2) {
			html += '<dd class="btnWrap">' +
					' <a href="#" onclick="Modal.toggle(\'application_dialog\', event);"><img src="http://md.egloos.com/img/letsreview/btn_request.gif" alt="신청하기" title="신청하기" /></a>'+
			       	' <a href="#" onclick="Modal.toggle(\'application_dialog_ext\', event);"><img src="http://md.egloos.com/img/letsreview/btn_request_ext.gif" alt="외부블로거 신청하기" title="외부블로거 신청하기" /></a>'+
					'</dd>';
		}
		else {
			html += '<dd class="btnWrap">' +
			       	' <a href="#" onclick="Review.execute();"><img src="http://md.egloos.com/img/letsreview/btn_review.gif" alt="리뷰작성" title="리뷰작성" /></a>'+
			       	' <a href="#" onclick="Modal.toggle(\'review_dialog_ext\', event);"><img src="http://md.egloos.com/img/letsreview/btn_review_ext.gif" alt="외부블로거 리뷰작성" title="외부블로거 리뷰작성" /></a>'+
					'</dd>' + 
					'</dl>';
					
			html += '<div id="trackback" style="display: none;">http://valley.egloos.com/letsreview/' + item.itemid + '</div>' +
					'<div class="trackback">' +
					'<span>트랙백주소</span>' + 
					'<input type="text" value="http://valley.egloos.com/letsreview/' + item.itemid + '" />' +
					'<img src="http://md.egloos.com/img/letsreview/btn_copy.gif" alt="복사하기" onclick="code_copy(\'trackback\');" />' +
					'</div>';
		}
		html += '</div>' + '';
		
		return html;
	},
	
	_createRightHTML: function(item, title) {
		var html = '<div class="now_item">'+
						'<h3><img src="http://md.egloos.com/img/letsreview/'+title.image+'" alt="'+title.text+'" title="'+title.text+'" /></h3>'+
						'<div class="scrollwrap">'+
							'<div class="list">'+
								'<ul>';
		for (var i=0; i<item.length; i++) {
			html += '<li><a href="/review/item.php?id='+item[i].itemid+'" title="'+item[i].title+'"><img src="'+item[i].image.thumbnail+'" alt="" title="'+item[i].title+'" width="58" height="84" onmouseover="Item.Preview.onMouseOver(\''+item[i].itemid+'\', this)" onmouseout="Item.Preview.onMouseOut(this)" /></a></li>';
		}
		html += '</ul> </div> </div> </div>';
		return html;
	},
	
	_createRightHTMLinfoTab: function(item, title) {
        var iteminfo = this._findInfo(item[this.bestItemNo].itemid);
		var subTitle = $H(iteminfo.subTitle).keys();
		var subValue = $H(iteminfo.subTitle).values();
		var csslist = new Array;
		csslist[0] = 'first';
		csslist[1] = 'sec';
		csslist[2] = 'thd';
		csslist[3] = 'for';
		csslist[4] = 'fifth';
		var html = '<dl class="right_review">'+
						'<dt class="best_review">신청이 많은 리뷰 상품 BEST 5</dt>'+
						'<dd class="detail_info">'+
							'<dl>'+
								'<dt><em class="best'+(this.bestItemNo+1)+'">BEST '+(this.bestItemNo+1)+'</em><span><a href="/review/item.php?id='+iteminfo.itemid+'">'+iteminfo.title+'</a></span></dt>'+
								'<dd class="banner"><a href="/review/item.php?id='+iteminfo.itemid+'"><img src="'+iteminfo.image.main+'" alt="'+iteminfo.title+'" title="'+iteminfo.title+'" width="113" height="153" /></a></dd>';
		for (var i=0; i<subTitle.length; i++) {
			html += '<dd><span>'+subTitle[i]+' : </span>'+subValue[i]+'</dd>';
		}
		html += '<dd><span class="date">기간 : </span>'+iteminfo.date['applicationDate']+'</dd>'+
								'<dd><span class="num">신청수량 : </span>'+iteminfo.winningCount+'개</dd>'+
							'</dl>'+
						'</dd>'+
						'<dd class="more_view"><a href="/review/item_list.php?opt=2" title="더보기">더보기</a></dd>'+
					'</dl>'+
					'<ol class="other_list">';
		var on_str = '';
		for (var i=0; i<5; i++)
		{
			if (i == this.bestItemNo) on_str = '_on';
			else on_str = '';
			html += '<li><a href="#" id="bestClick'+i+'" class="'+csslist[i]+on_str+'" title="'+(i+1)+'위">'+(i+1)+'위</a></li>';
		}
		html += '</ol>'+
				'</div>';
		return html;
	},
	
	_getItemList: function(tabType) {
		new Ajax.Request('/exec/review/get_item_list.php', {
			parameters: {
				'type'	: tabType
			},
			onSuccess: function(transport) {
				var text = transport.responseText;
				if(text.isJSON()) {
					var result = text.evalJSON();
					var item = result.list;
					this.insertTypeItem(tabType, item);
					this.loadItemInfo(tabType);
				}
			}.bind(this),
			onFailure: function() {
				// show message
			}
		})
	},

    _findInfo: function(itemid) {
        for (var i=0; i<Item.info.length; i++) {
            var info = Item.info[i];
            if (info.itemid == itemid) {
                return info;
            }
        }
        return null;
    },

    _setItemInfo: function(tabType, itemid) {
        var item;
        if (item = this._findInfo(itemid)) {
			this.showContent(tabType, item);
        }
        else {
            new Ajax.Request('/exec/review/get_item_info.php', {
                parameters: {
                    'itemid'    : itemid
                },
                onSuccess: function(transport) {
                    var text = transport.responseText;
                    if(text.isJSON()) {
                        var item = text.evalJSON();
                        if (item.code == '1') {
                            Item.info.push(item);
							this.showContent(tabType, item);
                        }
                    }
                }.bind(this),
                onFailure: function() {

                }
            });
         this.enableLoad = false;
        }
    },

	insertTypeItem: function(type, item) {
		StatusTab.Type[type].item = item;
	}
}

StatusTab.Type = {
	'infoTab': {
		'opt'	: 0,
		'tab'	: {'imageOn'	: 'tab_txt01_on.gif', 'imageOff': 'tab_txt01_off.gif', 'text'	: '렛츠리뷰란?'},
		'title'	: {'image'	: 'tit_right_01.gif', 'text'	: '렛츠리뷰란?'},
		'item'	: null,
		'cls'	: 'fir'
	},
	'nextTab': {
		'opt'	: 1,
		'tab'	: {'imageOn'	: 'tab_txt03_on.gif', 'imageOff': 'tab_txt03_off.gif', 'text'	: '신청 대기중이에요!'},
		'title'	: {'image'	: 'tit_right_03.gif', 'text'	: '신청 대기중이에요!'},
		'item'	: null,
		'cls'	: 'thd'
	},
	'nowTab': {
		'opt'	: 2,
		'tab'	: {'imageOn'	: 'tab_txt02_on.gif', 'imageOff': 'tab_txt02_off.gif', 'text'	: '지금 신청하세요!'},
		'title'	: {'image'	: 'tit_right_02.gif', 'text'	: '지금 신청하세요!'},
		'item'	: null,
		'cls'	: 'sec'
	},
	'reviewTab': {
		'opt'	: 3,
		'tab'	: {'imageOn'	: 'tab_txt04_on.gif', 'imageOff': 'tab_txt04_off.gif', 'text'	: '리뷰해주세요'},
		'title'	: {'image'	: 'tit_right_04.gif', 'text'	: '리뷰해주세요'},
		'item'	: null,
		'cls'	: 'four'
	}
}
