// ---------------------------------
// ½Ç½Ã°£ °Ë»ö¾î ÃÊ±âÈ­ ¸Þ¼Òµå start
// ---------------------------------
var g_CallerID;

function getLogSection(callerid){
	switch(callerid.toLocaleLowerCase()){
		case "main":
			return "FCM000_TRMK";
		break;
		case "search":
			return "FCQ000_TRMK";
		break;
		case "qtv":
			return "FCS000_TRMK";
		break;
	}
}

function initRealtimeKeyword(callerid) {
	g_CallerID = callerid;
	var recivedKeywordData;

	new Ajax.Request('/common/realtimeVideoKeyword.asp', {
		method: 'get',
		asynchronous: false,
		contentType: 'application/x-www-form-urlencoded',
		encoding: 'euc-kr',
		onSuccess: function(xmlHttp) {
			callbackRealtimeKeyword(xmlHttp);
    	}
	});
}

function callbackRealtimeKeyword(xmlHTTP){
	var str = xmlHTTP.responseText;
	recivedKeywordData = eval(str);

	keyworddisplay();
}

function keyworddisplay() {
	// ¼øÂ÷Àû ³ëÃâ item ¼ÂÆÃ
	realtimeKeyword = new fcscroll.Ranking();
	
	realtimeKeyword.setScrollRankingDisplayId("realtimeSchKeyword");
	
	for (var i = 0; i < recivedKeywordData.length; i++) {

		var realtimeKeywordAddValue = getScrollRealtimeKeywordAddValue(i+1, recivedKeywordData[i].keyword, recivedKeywordData[i].ranktype);
		realtimeKeyword.add(realtimeKeywordAddValue);
	}
	
	realtimeKeyword.start();

	// ¸¶¿ì½º¿À¹ö ½Ã item ¼ÂÆÃ
	var rankList_ol = new Array(2);

	rankList_ol[0] = "";
	rankList_ol[1] = "";

	for (var i = 0; i < recivedKeywordData.length; i++) {
		if(i < 5) {
			rankList_ol[0] += getRankingRealtimeKeywordAddValue(i+1, recivedKeywordData[i].keyword, recivedKeywordData[i].ranktype);
		} else {
			rankList_ol[1] += getRankingRealtimeKeywordAddValue(i+1, recivedKeywordData[i].keyword, recivedKeywordData[i].ranktype);
		}
	}
	document.getElementById("rankList1_ol").innerHTML = rankList_ol[0];
	document.getElementById("rankList2_ol").innerHTML = rankList_ol[1];
	
	// ie6 sp1 ÀÌÈÄ ¹öÁ¯ Flicker Bug fix
	try {document.execCommand('BackgroundImageCache', false, true);} catch(e) { }
}
// ---------------------------------
// ½Ç½Ã°£ °Ë»ö¾î ÃÊ±âÈ­ ¸Þ¼Òµå end
// ---------------------------------


// ½Ç½Ã°£ °Ë»ö¾î scroll add value
function getScrollRealtimeKeywordAddValue(loopNumber, keyword, rankType) {
	var rankTypeImageFileInfo;
	var result;

	rankTypeImageFileInfo = getRankTypeImageFileInfo2(rankType);
	
	var url = fcMainUtil.ReplaceUrlForMain20(g_searchsvr+"/search_total.asp?keyword=" + escape(keyword), 'REALRANK>TEXT', getLogSection(g_CallerID)+"01_001");
	
	result = "";
	result += "<p class=kw" + loopNumber + ">";
	result += "<a href=\""+url+"\" onmouseOver=\"document.getElementById('realtimeSchKeyword_on').style.display = ''\">";
	result += "" + getTruncateTitle(keyword) + "";
	result += "<\/a>";
	result += "<span class=\"" + rankTypeImageFileInfo + "\"><\/span>";
	result += "<\/p>";
	
	return result;
}

// ½Ç½Ã°£ °Ë»ö¾î ¸¶¿ì½º¿À¹ö add value
function getRankingRealtimeKeywordAddValue(loopNumber, keyword, rankType) {
	var rankTypeImageFileInfo;
	var rankImageNumber;
	var result;
	
	rankImageNumber = (loopNumber < 10 ) ? "0" + loopNumber : loopNumber;
	rankTypeImageFileInfo = getRankTypeImageFileInfo2(rankType);
	
	var url = fcMainUtil.ReplaceUrlForMain20(g_searchsvr+"/search_total.asp?keyword=" + escape(keyword), 'REALRANK>TEXT', getLogSection(g_CallerID)+"01_001");
	
	result = "\n";
	result += "<li>";
	result += "<img src='" + g_imgsvr + "/common/rank/ico_" + rankImageNumber + ".gif' \/>";
	result += "<a href=\"" + url + "\" id=\"r" + rankImageNumber + "\" title=\"" + keyword + "\">";
	result += getTruncateTitle(keyword);
	result += "<\/a>";
	result += "<span>";
	result += "<img src='" + g_imgsvr + "/common/rank/ico_" + rankTypeImageFileInfo + ".gif' \/>";
	result += "<\/span>";
	result += "<\/li>";	
	
	return result;
}

function getTruncateTitle(vTitle) {
  var initTextLength;
  var returnText;

  initTextLength = getByteLength(vTitle);

  for(var i = 13; i > 10; i--) {
    if(getByteLength(vTitle.truncate(i)) < initTextLength) {
      returnText = vTitle.truncate(i);
      break;
    }
  }

  if (returnText == undefined) { 
    returnText = vTitle.truncate(13);
  }

  return returnText;
}

function getByteLength(s){
   var len = 0;
   if ( s == null ) return 0;
   for(var i=0;i<s.length;i++){
      var c = escape(s.charAt(i));
      if ( c.length == 1 ) len ++;
      else if ( c.indexOf("%u") != -1 ) len += 2;
      else if ( c.indexOf("%") != -1 ) len += c.length/3;
   }
   return len;
}

function getRankTypeImageFileInfo2(rankType) {
	var result;
	
	switch(rankType) {
		case '+':
			result = 'up';
			break;
		case '-':
			result = 'down';
			break;
		case 'new':
			result = 'new';
			break;
		default:
			result = 'hold';
			break;
	}
	
	return result;
}

function getRankTypeImageFileInfo(rankType) {
	var result = new Array(2);
	
	switch(rankType) {
		case '+':
			result[0] = 'ico_rankup.gif';
			result[1] = 's';
			break;
		case '-':
			result[0] = 'ico_rankdown.gif';
			result[1] = 's';
			break;
		case 'new':
			result[0] = 'ico_ranknew.gif';
			result[1] = 'l';
			break;
		case '0':
			result[0] = 'ico_rankmid.gif';
			result[1] = 'l';
			break;
		default:
			result[0] = 'ico_rankmid.gif';
			result[1] = 'l';
			break;
	}

	return result;
}

function showRankList(id) {
	if (id == "rankList1") {
		document.getElementById("rankList1").style.display='';
		document.getElementById("rankList1").style.visibility='visible';
		document.getElementById("rankList2").style.display='none';
		document.getElementById("rankList2").style.visibility='hidden';
	} else {
		document.getElementById("rankList2").style.display='';
		document.getElementById("rankList2").style.visibility='visible';
		document.getElementById("rankList1").style.display='none';
		document.getElementById("rankList1").style.visibility='hidden';
	}
	
	new Ajax.Request("/common/FcMain/80/FmBlankPage.asp", {
					method: 'get',
					asynchronous: true,
					contentType: 'application/x-www-form-urlencoded',
					encoding: 'euc-kr',
					parameters: {LogSection: getLogSection(g_CallerID)+"01_002"}
		        });
}

var msg_hidden_idle=null;

function msg(id) {
	if(navigator.userAgent.indexOf("Opera")>-1) return;

	if(msg_hidden_idle) {
		clearInterval(msg_hidden_idle);
	}

	var _div_tag = document.getElementsByTagName("div");

	for (var i=0;i<_div_tag.length;i++) {
		if (_div_tag[i].id.indexOf('rankList')==0) {
			_div_tag[i].style.display = 'none';
			_div_tag[i].style.visibility = 'hidden';
		}
	}

	if(id) {
		var mid=document.getElementById(id);
		mid.style.display='';
		mid.style.visibility='visible';
	}
}

function msg_hidden(id,f) {
	if(navigator.userAgent.indexOf("Opera")>-1) return;

	if(f==1) {
		hidden(id);
	}else{
		msg_hidden_idle=setInterval("hidden('"+id+"')",100);
	}
}

function hidden(id) {
	var mid=document.getElementById(id);
	mid.style.display='none';
	mid.style.visibility='hidden';
}

var fcscroll = new Object();

fcscroll.Scroll = function() {
	this.name = "fcscroll";
	this.divId = "";
	this.item = new Array();
	this.itemcount = 0;
	this.currentspeed = 0;
	this.scrollspeed = 200;
	this.pausedelay = 1000;
	this.pausemouseover = false;
	this.stop = false;
	this.height = 100;
	this.width = 100;
	this.i=0;
	this.scrollHeight = 1;
}

fcscroll.Scroll.prototype = {
	add : function (text) {
		this.item[this.itemcount] = text;
		this.itemcount = this.itemcount + 1;
	},
	setDivId : function(name) {
		this.divId = name
	},
	start : function () {
		if ( this.itemcount == 1 ) {
			this.add(this.item[0]);
		}
		this.display();
		this.currentspeed = this.scrollspeed;
		this.stop = true;
		setTimeout(this.name+'.scroll()',this.currentspeed);
		window.setTimeout(this.name+".stop = false", this.pausedelay);
	},
	display : function () {
		var htmlCode;
		htmlCode = '<div id="'+this.name+'" style="height:'+this.height+'px; width:'+this.width+'px; position:relative; overflow:hidden; " OnMouseOver="'+this.name+'.onmouseover(); " OnMouseOut="'+this.name+'.onmouseout(); ">';
		for(var i = 0; i < this.itemcount; i++) {
			htmlCode += '<div id="'+this.name+'item'+i+'" style="left:0px; width:'+this.width+'px; top:'+(this.height*i)+'px; position:absolute; ">';
			htmlCode += this.item[i];
			htmlCode += '</div>';
		}
		htmlCode += '</div>';
		document.getElementById(this.divId).innerHTML=htmlCode;
		
	},
	scroll : function () {
		this.currentspeed = this.scrollspeed;

		if ( !this.stop ) {
			for (var i = 0; i < this.itemcount; i++) {
				obj = document.getElementById(this.name+'item'+i).style;
				
				obj.top = (eval(obj.top.replace('px', '') - this.scrollHeight)).toString() + 'px';
				if(parseInt(obj.top.replace('px', '')) <= this.height * (-1)){
					obj.top = this.height * (this.itemcount-1) + 'px';
				}
				if(parseInt(obj.top.replace('px', '')) == 0){
					this.currentspeed = this.pausedelay;
					this.i = i;
				}
			}
		}
		window.setTimeout(this.name+".scroll()",this.currentspeed);
	},
	onmouseover : function () {},
	onmouseout : function () {}
}

fcscroll.Ranking = function(){
	this.fcscroll = new fcscroll.Scroll();
	this.fcscroll.name = "";
	this.fcscroll.name = "realtimeKeyword.fcscroll";
	this.fcscroll.height = 20;
	this.fcscroll.width = 176;
	this.fcscroll.scrollspeed = 1;
	this.fcscroll.pausedelay = 2500;
	this.fcscroll.pausemouseover = true;
	this.fcscroll.scrollRankingDisplayId = "";
}

fcscroll.Ranking.prototype = {
	init : function(){
		this.fcscroll.setDivId(this.fcscroll.scrollRankingDisplayId);
		this.fcscroll.onmouseover = function() {
			if( this.i < 5 ) msg('rankList1');
			else msg('rankList2');
			if ( this.pausemouseover ) {
				this.stop = true;
			}
			for( var i = 0; i < 10; ++i ) {
				var ii = i + 1;
				if( ii < 10 ) ii = "r0" + ii;
				else ii = "r" + ii;
				var itemObj = document.getElementById(ii);
				if( itemObj ) {
					if( i == this.i ) itemObj.style.fontWeight='bold';
					else itemObj.style.fontWeight='normal';
				}
			}
		}
		this.fcscroll.onmouseout = function() {
			if ( this.pausemouseover ) {
				this.stop = false;
			}
		}
	},
	add : function(text){
		this.fcscroll.add(text);
	},
	start : function(){
		this.init();
		this.fcscroll.start();
	},
	onmouseover : function(){
		this.fcscroll.onmouseover();
	},
	onmouseout : function(){
		this.fcscroll.onmouseout();
	},
	next : function() {
		for (i = 0; i < this.fcscroll.itemcount; i++) {
			obj = document.getElementById(this.name+'item'+i).style;
			if ( parseInt(obj.left) < 1 ) {
				width = this.fcscroll.width + parseInt(obj.left);
				break;
			}
		}
		for (i = 0; i < this.fcscroll.itemcount; i++) {
			obj = document.getElementById(this.name+'item'+i).style;
			if ( parseInt(obj.left) < 1 ) {
				obj.left = this.fcscroll.width * (this.fcscroll.itemcount-1);
			} else {
				obj.left = parseInt(obj.left) - width;
			}
		}
	},
	setScrollRankingDisplayId : function(vId){
		this.fcscroll.scrollRankingDisplayId = vId;
	}
}

