
// Define
var homeUrl = "http://" + document.domain,
	twitterUrl = "http://twitter.com/",
	twitUrl = twitterUrl + "share?",
	twitPostUrl = "http://api.twitter.com/1/statuses/update.json",
	twitPostMediaUrl = "https://upload.twitter.com/1/statuses/update_with_media.json",
	twitOwnerUrl = "http://img.tweetimag.es/i/",
	facebookUrl = "http://www.facebook.com/",
	detailUrl = "http://www.followkr.com/common/html/twitDetail.html?id=",
	twitterObj, 
	// map
	lat, lng, rad,
	// IE6
	isIE6 = jQuery.browser.msie && jQuery.browser.version < 7 && !window.XMLHttpRequest,
	// mobileFlag
	mobileFlag = false,
	// processFlag for Search
	processing = false,
	// loading layer Object
	loading = jQuery("#fancybox-loading"), loadingFrame = 1, loadingTimer;

if(isIE6){ loading.addClass("fancybox-ie6"); }

// trim
String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g, "");
};

// replacer
String.prototype.replaceAll = function(pcFrom, pcTo) {
	var i = this.indexOf(pcFrom);
	var c = this;
	while (i > -1) {
		c = c.replace(pcFrom, pcTo);
		i = c.indexOf(pcFrom);
	}
	return c;
};

// http url converter 
String.prototype.urlAutoLink = function(){
	//var str = this.replace(/(http:\/\/[\x21-\x7e]+)/gi, "<a href='$1' target='_blank'>$1</a>");
	var str = this.replace(/((ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?)/gi, "<a href='$1' target='_blank'>$1</a>");
	str = str.replaceAll("\”", "").replaceAll("\"", "").replaceAll("'","");
	//return str.replace(/@([\x21-\x7e]+)/gi, "<a class='twitter-anywhere-user' href='" + twitterUrl + "$1'>@$1</a>");
	return str.replace(/[\@]+([A-Za-z0-9-_]+)/gi, "<a class='twitter-anywhere-user' href='" + twitterUrl + "$1'>@$1</a>");
};

/**
 * getYMDdate
 * get Date String : yyyy/MM/dd
 */
Date.prototype.getYMDdate = function() {
	var y = this.getFullYear();
	var M = this.getMonth() + 1;
	var d = this.getDate();
	var h = this.getHours();
	var m = this.getMinutes();
	
	if (M < 10) M = "0" + M;
	if (d < 10) d = "0" + d;
	if (h < 10) h = "0" + h;
	if (m < 10) m = "0" + m;
	return y + "/" + M + "/" + d + " " + h + "\:" + m;
}
/**
 * getConvDateFKR
 * @param	flg: twitter / facebook
 */
function getConvDateFKR(timeParam, flg) {
	var rtnDate;
	switch(flg){
		case "t": rtnDate = new Date((new String((new Date()).getFullYear())).substring(0, 2) + timeParam); break;	
		case "f": 
			rtnDate = new Date();
			rtnDate.setTime(timeParam * 1000);
			break;
	}
	return rtnDate;
}

// initialize Livere 
function initLivere(url, containerID, title, tag){
	jQuery("#" + containerID).html();
	
	if(!containerID){ containerID = "livereDiv"; }
	if(!tag){ tag = " "; }
	var list = 10;
	
	livereReply = new Livere(url, containerID , title , tag, "followkr", "default" , "openwhite" , list);
	livereReply.init();
	jQuery("#livereBanner").remove();
}


// Twitter Facebook Init ---------------------------------------------------------------------------------------------------------//
var FKRsign = {
	TwConnected : false,
	FbConnected : false,
	isTwConnected : function(){ return this.TwConnected; },
	isFbConnected : function(){ return this.FbConnected; },
	setTwLoginStatus : function(flg){ this.TwConnected = flg; },
	setFbLoginStatus : function(flg){ this.FbConnected = flg; }
};
/**
 * Call Twitter anywhere API 
 */
twttr.anywhere(function(twitter) {
	twitterObj = twitter;
	
	// Twitter Toggle Style, Bind Button Event
	var toggleDiv = function(){
		var cUO = jQuery("#connectedUser"), cBO = jQuery("#connectButton"), twCkBtn = jQuery("#twCkBtn"), auMo = jQuery("#FKRAuthModal");
		if(twitter.isConnected()){
			// Button style, unBind Button Click Event
			cBO.removeClass("connect").addClass("connected").unbind("click");
			
			var User = twitter.currentUser;
			var userHtml = "";
			userHtml += "<div class='topmenu'>";
			userHtml += "<img src='" + User.data("profile_image_url") + "'/>";
			userHtml += "<span class='loggedUser'>" + User.data("screen_name") + "</span>";
			userHtml += "</div>";
			userHtml += "<ul class='submenu'>";
			userHtml += "<li><a href='http://twitter.com/" + User.data("screen_name") + "' target='_blank'>Twitter Profile</a></li>";
			userHtml += "<li class='last'><a href='javascript:return false;' class='logout'>Sign out</a></li>";
			userHtml += "</ul>";
			cUO.html(userHtml).css("padding", "0 6px").css("width", "140px");
			
			// Bind logout Button Click Event
			cUO.find(".topmenu").click(function(event){
				var target = jQuery(event.currentTarget.parentNode);
				target.find("ul.submenu").slideToggle("fast");
				cUO.toggleClass("active");
			});
			cUO.find(".logout").click(function(){
				cUO.toggleClass("active").css("width", "0px").css("padding", "0").html("");
				twttr.anywhere.signOut();
			});
			
			FKRsign.setTwLoginStatus(true);
			twCkBtn.attr("checked", true).addClass("on");
			if(!auMo.isShown) { auMo.modal("hide");	auMo.remove(); }
		}else{
			// Button style
			cBO.removeClass("connected").addClass("connect").html("").click(function(){
				twitter.signIn();
			});
			cUO.css("width", "0px").css("padding", "0");
			
			FKRsign.setTwLoginStatus(false);
			twCkBtn.removeAttr("checked").removeClass("on");
			if(!auMo.isShown) { auMo.modal("hide");	auMo.remove(); }
		}
	}
	// Bind Signin, Signout Event
	twitter.bind("authComplete", function(e, user){
		toggleDiv();
	});
	twitter.bind("signOut", function(e){
		toggleDiv();
	});
	toggleDiv();
	
	// follow popup 
	twitter.hovercards();
	twitter("a.twitter-user-screen-name").hovercards({
		username: function (node) {
			return node.href.replace(/http:\/\/twitter.com\/([^\/]+)\/?.*/, "$1");
		}
	});
});

/**
 * Facebook Toggle Style, Bind Button Event 
 */
window.fbAsyncInit = function() {
	// initialize Facebook App API
	FB.init({
		appId	: "186908458011800",
		cookie	: true,
		status	: true,
		xfbml	: true,
		oauth	: true
	});
	var toggleFbDiv = function(response){
		var cBFO = jQuery("#connectButtonFb"), cUFO = jQuery("#connectedUserFb"), fbCkBtn = jQuery("#fbCkBtn"), auMo = jQuery("#FKRAuthModal");
		if (response.authResponse) {
			FB.api("/me", function(user) {
				// loggedin
				if(user != null){
					// Button style, unBind Button Click Event
					cBFO.removeClass("connect").addClass("connected").unbind("click");
					
					var userHtml = "";
					userHtml += "<div class='topmenu'>";
					userHtml += "<img src='http://graph.facebook.com/" + user.id + "/picture'/>";
					userHtml += "<span class='loggedUser'>" + user.name + "</span>";
					userHtml += "</div>";
					userHtml += "<ul class='submenu'>";
					userHtml += "<li><a href='" + user.link + "' target='_blank'>Facebook Profile</a></li>";
					userHtml += "<li class='last'><a href='javascript:return false;' class='logout'>Sign out</a></li>";
					userHtml += "</ul>";
					cUFO.html(userHtml).css("padding", "0 6px").css("width", "140px");
								
					// Bind Button Click Event
					cUFO.find(".topmenu").click(function(event){
						var target = jQuery(event.currentTarget.parentNode);
						target.find("ul.submenu").slideToggle("fast");
						cUFO.toggleClass("active");
					});
					cUFO.find(".logout").click(function(){
						FB.logout(function(response) { });
						cUFO.toggleClass("active");
					});
				}
				FKRsign.setFbLoginStatus(true);
				fbCkBtn.attr("checked", true).addClass("on");
				if(!auMo.isShown) { auMo.modal("hide");	auMo.remove(); }
			});
		}
		// not Logged
		else{
			cUFO.css("width", "0px").css("padding", "0").html("");
			
			// Button style, Bind Button Click Event
			cBFO.removeClass("connected").addClass("connect").unbind("click");
			cBFO.click(function(){
				FB.login(function(response){ }, { scope : "read_stream,publish_stream,publish_actions,user_photos,user_videos,user_checkins" });	
			});
			FKRsign.setFbLoginStatus(false);
			fbCkBtn.removeAttr("checked").removeClass("on");
			if(!auMo.isShown) { auMo.modal("hide");	auMo.remove(); }
		}
	}
	FB.getLoginStatus(toggleFbDiv);
	FB.Event.subscribe("auth.statusChange", toggleFbDiv);
};
window.fbAsyncInit();
// end of Twitter Facebook Init ---------------------------------------------------------------------------------------------------------//


// function For Comment Date sort
function cmntSort(a, b){
	var	aDate = a.registDate ? getConvDateFKR(a.registDate, "t") : getConvDateFKR(a.created_time, "f");
	var	bDate = b.registDate ? getConvDateFKR(b.registDate, "t") : getConvDateFKR(b.created_time, "f");
	return bDate - aDate;
}

// initailize followkr's common object
var FKRcmno = {
	// Toggle the dropdown menu's
	dropdownBind : function(){
		jQuery(".dropdown .button, .dropdown button").unbind("click").bind("click", function () {
			jQuery(this).parent().find(".dropdown-slider").slideToggle("fast");
			jQuery(this).find("span.toggle").toggleClass("active");
			return false;
		});
	},
	// Display result message
	displayMsg : function(containerID, message, className, service, viewFlg){
		var containerObj = jQuery(containerID);
		if(viewFlg){
			var msgObj = document.createElement("div"); msgObj.className = "alert " + className;
			var txt = "<a class='close'>&times;</a>";
			if(service != ""){
				txt += service + " - " + message;
			}else{
				txt += message;
			}
			txt += "</div>";
			msgObj.innerHTML = txt;
			containerObj.append(msgObj).find("a.close").unbind("click").bind("click", function(){
				containerObj.find("div.alert").remove();
			});
		}else{
			containerObj.html("");
		}
	},
	// open modal for OAuth info
	openAuthModal : function(containerID, modalBody, showF, hiddenF){
		var moObj = document.createElement("div"); 
		moObj.id = containerID.replace("#", ""); moObj.className = "modal hide fade";
		var moHtml = "<div class='modal-header'><a class='close' data-dismiss='modal'>&times;</a>";
		moHtml += "<h3>인증</h3></div>";
		moHtml += "<div class='modal-body text_center'><img class='' src='/img/loading.gif' /><p>" + modalBody + "</p></div>";
		moHtml += "<div class='modal-footer'><a class='close' data-dismiss='modal'>닫기</a></div>";
		moObj.innerHTML = moHtml;
		document.getElementsByTagName("body")[0].appendChild(moObj);
		var moJqObj = jQuery(containerID);
		moJqObj.off("shown").off("hide").on("shown", function(){
			showF();
		}).on("hide", function(){
			hiddenF(); moJqObj.remove();
		});
		moJqObj.modal();
	},
	// open twitter window
	openTwitPopup : function(bodyText, id, flg){
		var width = 550, height = 450;
		var left = Math.round((screen.width/2)-(width/2));
		var top = Math.round((screen.height/2)-(height/2));
		
		window.open(twitUrl + "&text=" + encodeURIComponent(bodyText) + "&url=" + encodeURIComponent(homeUrl + "/common/html/twitDetail.html?id=" + id), "twitter", "left=" + left + ",top=" + top + ",width=" + width + ",height=" + height + ",status=0,menubar=0,toolbar=0,resizable=1,personalbar=0");
	},
	// post twitter msg
	postTwitStatus : function(message, bodyText, id, flg){
		if (twitterObj.isConnected()) {
			twitterObj.Status.update(message + " " + homeUrl + "/common/html/twitDetail.html?id=" + id);
			FKRcmno.displayMsg("#resultMsg", "글을 게시했습니다", "alert-success", "Twitter", true);
		}else{
			FKRcmno.displayMsg("#resultMsg", "글을 게시할 수 없습니다", "alert", "Twitter", true);
		}
	},
	// open facebook feed window 
	openFacebookPopup : function(bodyText, pictureURL, id, flg){
		if(jQuery("meta[property='og:type']") && jQuery("meta[property='og:type']").attr("content") == "video"){
			FB.ui( 
				{
					method: "feed",
					name: bodyText,
					link: homeUrl + "/common/html/twitDetail.html?id=" + id,
					picture: pictureURL,
					caption: jQuery("meta[property='og:site_name']").attr("content"),
					description: jQuery("meta[property='og:description']").attr("content"),
					type: "video",
					source: jQuery("meta[property='og:video']").attr("content")
				},
				function(response) {
					if (response && response.post_id) { ; } else { ; }
				}
			);
		}else{
			FB.ui( 
				{
					method: "feed",
					name: bodyText,
					link: homeUrl + "/common/html/twitDetail.html?id=" + id,
					picture: pictureURL,
					caption: jQuery("meta[property='og:site_name']").attr("content"),
					description: jQuery("meta[property='og:description']").attr("content")
				},
				function(response) {
					if (response && response.post_id) { ; } else { ; }
				}
			);
		}
	},
	// post facebook feed
	postFacebookFeed : function(message, bodyText, pictureURL, id, flg){
		FB.api("me/feed", "post", 
			{
				method: "feed",
				name: bodyText,
				link: homeUrl + "/common/html/twitDetail.html?id=" + id,
				picture: pictureURL,
				caption: jQuery("meta[property='og:site_name']").attr("content"),
				description: jQuery("meta[property='og:description']").attr("content"),
				message : message
			},
			function(response) {
				if (!response || response.error) {
					FKRcmno.displayMsg("#resultMsg", "글을 게시할 수 없습니다", "alert", "Facebook", true);
				} else {
					FKRcmno.displayMsg("#resultMsg", "글을 게시했습니다", "alert-success", "Facebook", true);
				}
			}
		);
	},
	// post FB Comment
	postFBComment : function(message, id, flg, containerID, fbid){
		FB.api(fbid + "/comments", "post", { message: message },
			function(response) {
				if (!response || response.error) {
					FKRcmno.displayMsg("#resultMsg", "글을 게시할 수 없습니다", "alert", "Facebook", true);
				} else {
					FKRcmno.displayMsg("#resultMsg", "글을 게시했습니다", "alert-success", "Facebook", true);
					getIntegratedComments(containerID);
					getIntegratedComments(containerID, id, flg);
				}
			}
		);
	},
	// Render Google +1 Button
	renderGooglePlusBtn : function(containerID){
		if(window.gapi){
			if(containerID){
				gapi.plusone.go(containerID);
			}else{
				gapi.plusone.go();
			}
		}
	},
	// animate loading layer
	_animate_loading : function() {
		if (!loading.is(':visible')){
			clearInterval(loadingTimer);
			return;
		}
		jQuery('div', loading).css('top', (loadingFrame * -40) + 'px');
		loadingFrame = (loadingFrame + 1) % 12;
	},
	// Show loading layer
	showActivity : function() {
		clearInterval(loadingTimer);
		loading.show();
		loadingTimer = setInterval(FKRcmno._animate_loading, 66);
	},
	// Hide loading layer
	hideActivity : function() {
		loading.hide();
	},
	
	/* -----------------------------------Twitter Search Start */
	feedTweets : function(pNum, pSize, geoCode) {
		processing = true;
		var keyword = jQuery("#searchKeyword").val();
		var url = "http://search.twitter.com/search.json?callback=?";
		var currPosFlg = jQuery("#detailSearch #positionFlg").attr("checked") == "checked" ? true : false;
		var params;
		if(currPosFlg){
			params = {
				q: keyword,
				geocode: geoCode ? geoCode : lat + "," + lng + "," + rad + "km",
				rpp: pSize,
				page: pNum
			};
		}else{
			params = {
				q: keyword,
				//lang: 'ja',   // en, ja
				//locale: 'ja',
				rpp: pSize,     // number of tweets to return
				page: pNum      // page number
			};
		}
		FKRcmno.showActivity();
		
		jQuery.getJSON(url, params, function(data, status) {
			if (!data.results || data.results.length <= 0) {
				FKRcmno.hideActivity();
				return;
			}
			
			var html = "";
			jQuery.each(data.results, function(i, item) {
				var avatar = '<a class="tweet_avatar" href="http://twitter.com/' + item.from_user + '" target="_blank"><img src="' + item.profile_image_url + '" alt="' + item.from_user + '\'s avatar" class="custom_shadow" title="' + item.from_user + '\'s avatar" /></a>';  
				var owner = '<div class="owner">' + item.from_user + '</div>';
				var text = '<div class="tweet_text">' + FKRcmno.linkUser(FKRcmno.linkUrl(item.text)) + '</div>';
				var twitTool = '<span class="twitTool"><a href="http://twitter.com/' + item.from_user + '/status/' + item.id_str + '" target="_blank">' + FKRcmno.relative_time(item.created_at) + '</a>';
				twitTool += '<a href="https://twitter.com/intent/tweet?in_reply_to=' + item.id_str + '">답글하기</a>';
				twitTool += '<a href="https://twitter.com/intent/retweet?tweet_id=' + item.id_str + '">리트윗하기</a>';
				twitTool += '<a href="https://twitter.com/intent/favorite?tweet_id=' + item.id_str + '">관심글</a></span>';
				html += '<li>' + avatar + '<div>' + owner + text + twitTool + '</div></li>';
			});
			var $list = jQuery("ul#tweets");
			$list.empty().html(html);
			
			jQuery(".prev").show();
			jQuery(".page").text(pNum);
			jQuery("span.next").show();
			jQuery(".pager").show();
			processing = false;
							
			FKRcmno.hideActivity();
		}); // end of getJSON
	},
	/* helper functions */
	linkUrl : function(item_text) {
		var regexp = /((ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?)/gi;
		return item_text.replace(regexp, '<a href="$1" target="_blank">$1</a>');
	},
	// user Link for Search
	linkUser : function(item_text) {
		var regexp = /[\@]+([A-Za-z0-9-_]+)/gi;
		return item_text.replace(regexp, '<a class="twitter-anywhere-user" href="http://twitter.com/$1" target="_blank">@$1</a>');
	},
	// Calc Time for Search
	relative_time : function(time_value) {
		var parsed_date = Date.parse(time_value);
		var relative_to = (arguments.length > 1) ? arguments[1] : new Date();
		var delta = parseInt((relative_to.getTime() - parsed_date) / 1000);
		if (delta < 60) {
			return "1분전"; //'less than a minute ago';
		} else if (delta < 120) {
			return "1분전";  //'about a minute ago';
		} else if (delta < (45 * 60)) {
			return (parseInt(delta / 60)).toString() + "분전"; //' minutes ago';
		} else if (delta < (90 * 60)) {
			return "1시간전"; //'about an hour ago';
		} else if (delta < (24 * 60 * 60)) {
			return (parseInt(delta / 3600)).toString() + "시간전" //' hours ago';
		} else if (delta < (48 * 60 * 60)) {
			return "1일전" //'1 day ago';
		} else {
			return (parseInt(delta / 86400)).toString() + "일전" //' days ago';
		}
	},
	/*------------------------------------------------------- Twitter Search End */

	// Bind Event for rtTwit
	rtTwit : function(id, rtFlg, articleObj, className){
		var articleJObj = jQuery(articleObj);
		var targetObj = articleJObj.find("." + className);
		if (targetObj.css("display") == "none") {
			FKRcmno.showActivity();
			if(rtFlg == "pastRank"){ rtFlg += "_replies"; }
			
			jQuery.ajax({
				type: "GET",
				url: "/rank/detailreplies.php?id=" + id + "&flg=" + rtFlg,
				dataType: "json",
				success: function(data){
					if (data != null && (data.replies || data.rankedTwit)) {
						var rtTwits = data.replies ? data.replies : data.rankedTwit.rtTwits;
						var rtTwitsHtml = "";
						
						rtTwitsHtml = "<div class='rtHeader' />";
						rtTwitsHtml += "<ul>";
						for (var i = 0; i < rtTwits.length; i++) {
							rtTwitsHtml += "<li><div class=''>";
							rtTwitsHtml += "<div class='userPicSmall'><a href='" + twitterUrl + rtTwits[i].owner + "' target='_blank'><img src='http://img.tweetimag.es/i/" + rtTwits[i].owner + "' /></a></div>";
							rtTwitsHtml += "&nbsp;&nbsp;<span class='rtDate'>" + rtTwits[i].registDate + "</span>";
							rtTwitsHtml += "&nbsp;&nbsp;<span class='rtComment'>" + (rtTwits[i].comment).urlAutoLink() + "</span>";
							rtTwitsHtml += "</div></li>";
						}
						rtTwitsHtml += "</ul>";
						targetObj.html(rtTwitsHtml).slideDown("slow");
					}
				},
				complete: function(){
					FKRcmno.hideActivity();
				}
			});
		}
		else {
			targetObj.slideUp("fast");
		}
	},
	// request for Real-time RT (Main Article)
	getRealTimeRT : function(url, containerID, pageFlg){
		var rankDivObj = jQuery(containerID);
		rankDivObj.parent().find(".article_more:last").css("visibility", "collapse");
		FKRcmno.showActivity();
		
		jQuery.ajax({
			type: "GET",
			url: url,
			dataType: "json",
			success: function(data){
				if(data != null && data.rankedTwitList != null){
					var jsonObj = data.rankedTwitList;
					var maxCount = jsonObj.length;
					var resultHtml = "";
					if(from == 1){ rankDivObj.html("");	}
					
					for(var i = 0 ; i < maxCount ; i++){
						var articleObj = document.createElement("article");
						var headerObj = document.createElement("header");
						var contentObj = document.createElement("content");
						var footerObj = document.createElement("footer");
						var footerHTML = "";
						
						var tweetsDiv = document.createElement("div"); tweetsDiv.className = "tweets";
						headerObj.innerHTML = "<div class='comments'><span class='txtRed'>" + jsonObj[i].rtRank + "위</span><br/>" + jsonObj[i].rtCount + "</div>";
						var headpicDiv = document.createElement("div"); headpicDiv.className = "header_pic";
						headpicDiv.innerHTML = "<a href='" + twitterUrl + jsonObj[i].owner + "' target='_blank'><img class='custom_shadow' title='" + jsonObj[i].owner + "' alt='" + jsonObj[i].owner + "' src='http://img.tweetimag.es/i/" + jsonObj[i].owner + "' /></a>";
						contentObj.innerHTML = "<p class='tweetBody'>" + (jsonObj[i].body).urlAutoLink() + "</p>";
						tweetsDiv.appendChild(headerObj); tweetsDiv.appendChild(headpicDiv); tweetsDiv.appendChild(contentObj);
						
						footerHTML += "<span class='owner'><a class='twitter-anywhere-user' href='" + twitterUrl + jsonObj[i].owner + "' target='_blank'>@" + jsonObj[i].owner + "</a></span>";
						if(pageFlg != "pastRank"){
							footerHTML += "<span class='newLine'>";
							footerHTML += "<span class='tb'></span><span class='fbb'></span>";
							//footerHTML += "<span class='gpb'><div class='g-plusone' data-size='small' data-annotation='none' data-href='" + detailUrl + jsonObj[i].id + "'></div></span>";
							footerHTML += "</span>";
							//footerHTML += "<span class='newLineChat'><a href='./chat_main.html?getOwner=" + encodeURI(jsonObj[i].owner) + " &getBody=" + encodeURI(jsonObj[i].body) + "' target=''><strong>토론방개설</strong></a></span>";
							if(jsonObj[i].rtTwitCount >= 1){
								//footerHTML += "<a href='param.php?getDate=reData&reData=" + encodeURI(jsonObj[i].body) + "' target=''><strong>  답글보기[" + jsonObj[i].rtTwitCount + "]</strong></a>";
								footerHTML += "<span class='rtTwitButton'>&nbsp;&nbsp;&nbsp;<a href='javascript:void(0);' class='txtBold'>답글보기[" + jsonObj[i].rtTwitCount + "]</a></span>";
							}
						}
						footerObj.innerHTML = footerHTML;
						var reTwitDiv = document.createElement("div"); reTwitDiv.className = "reTwits";
						articleObj.appendChild(tweetsDiv); articleObj.appendChild(footerObj); articleObj.appendChild(reTwitDiv);
						
						jQuery.data(articleObj, "tid", jsonObj[i].id);
						jQuery.data(articleObj, "ownerID", jsonObj[i].owner);
						jQuery(articleObj).click(function(e){
							var target = jQuery(e.target); 
							var thisObj = jQuery(this);
							var tid = jQuery.data(this, "tid"); var ownerID = jQuery.data(this, "ownerID"); var bodyTxt = jQuery.text(thisObj.find("p:first"));
							if(pageFlg != "pastRank"){
								// Bind Event for Twitter Button
								if(target.is(".tb")){
									FKRcmno.openTwitPopup("RT @" + ownerID + " " + bodyTxt, tid, pageFlg);
								}
								// Bind Event for Facebook Button
								else if(target.is(".fbb")){
									FKRcmno.openFacebookPopup(bodyTxt, twitOwnerUrl + ownerID, tid, pageFlg);
								}
								// Bind Event for RT view Button
								else if(target.is(".rtTwitButton a")){
									FKRcmno.rtTwit(tid, pageFlg, thisObj, "reTwits");
								}
								// Bind Event for Twitter Detail
								else if(!target.is("a")){
									location.href = "/common/html/twitDetail.html?id=" + tid;  // + "&flg=" + pageFlg;
								}
							}
						});
						rankDivObj.append(articleObj);
					}
				}
			},
			complete : function(jqxhr, textStatus){
				FKRcmno.hideActivity();
				
				if(to >= 100){
					rankDivObj.parent().find(".article_more:last").css("display", "none");
				}else{
					rankDivObj.parent().find(".article_more:last").css("visibility", "visible");
				}
				// Google plusone
				FKRcmno.renderGooglePlusBtn("gpb");
			}
		});
	},
	// request for Hot RT
	getHotRT : function(url){
		var rankDivObj = jQuery("#hotList ul");
		var firstFlg = true;
		if(rankDivObj.children().length > 0){ firstFlg = false; }
		 
		jQuery.ajax({
			type: "GET",
			url: url,
			dataType: "json",
			success: function(data){
				if(data != null && data.rankedTwitList != null){
					var jsonObj = data.rankedTwitList;
					
					if(firstFlg){
						for(var i=0 ; i < jsonObj.length; i++){
							var resultHtml = "";
							var liObj, aboveDiv;
							liObj = document.createElement("li");
							aboveDiv = document.createElement("div"); 
							resultHtml += "<span class='twitter'><span class='rank_span'><span class='rank'>" + jsonObj[i].rtRank + "위</span>";
							resultHtml += "<br/>" + jsonObj[i].rtCount + "</span></span>";
							resultHtml += "<span class='userPicSmall'><a href='" + twitterUrl + jsonObj[i].owner + "' target='_blank'><img src='http://img.tweetimag.es/i/" + jsonObj[i].owner + "' /></a></span>";
							resultHtml += "&nbsp;&nbsp;<a class='twitter-anywhere-user' href='" + twitterUrl + jsonObj[i].owner + "' target='_blank'>@" + jsonObj[i].owner + "</a>&nbsp;&nbsp;<span class='twit_body'>" + (jsonObj[i].body).urlAutoLink() + "</span>";
														
							jQuery.data(aboveDiv, "id", jsonObj[i].id);
							jQuery.data(aboveDiv, "owner", jsonObj[i].owner);
							jQuery.data(aboveDiv, "bodyTxt", jsonObj[i].body);
							jQuery(aboveDiv).html(resultHtml).click(function(e){
								var target = jQuery(e.target);
								if(!target.is("a") && !target.is(".twitter") && !target.is(".userPicSmall img")){
									location.href = "/common/html/twitDetail.html?id=" + jQuery.data(this, "id");
								}
								if(target.is(".twitter")){
									FKRcmno.openTwitPopup("RT @" + jQuery.data(this, "owner") + " " + jQuery.data(this, "bodyTxt") + " ", jQuery.data(this, "id"), flg);
								}
							});
							liObj.appendChild(aboveDiv); rankDivObj.append(liObj);
						}
					}else{
						var i = -1;
						setInterval(function(){
							i++;
							if(i < jsonObj.length){ 
								var liObj, aboveDiv, belowDiv;
								var resultHtml = "";
								resultHtml += "<span class='twitter'><span class='rank_span'><span class='rank'>" + jsonObj[i].rtRank + "위</span>";
								resultHtml += "<br/>" + jsonObj[i].rtCount + "</span></span>";
								resultHtml += "<span class='userPicSmall'><a href='" + twitterUrl + jsonObj[i].owner + "' target='_blank'><img src='http://img.tweetimag.es/i/" + jsonObj[i].owner + "' /></a></span>";
								resultHtml += "&nbsp;&nbsp;<a class='twitter-anywhere-user' href='" + twitterUrl + jsonObj[i].owner + "' target='_blank'>@" + jsonObj[i].owner + "</a>&nbsp;&nbsp;<span class='twit_body'>" + (jsonObj[i].body).urlAutoLink() + "</span>";
								
								// for First-time request
								liObj = rankDivObj.find("li").get(i);
								if(liObj.getElementsByTagName("div").length == 2) {
									jQuery(liObj.getElementsByTagName("div")[0]).remove();	
								}
								aboveDiv = liObj.getElementsByTagName("div")[0];
								
								belowDiv = document.createElement("div");
								jQuery.data(belowDiv, "id", jsonObj[i].id);
								jQuery.data(belowDiv, "owner", jsonObj[i].owner);
								jQuery.data(belowDiv, "bodyTxt", jsonObj[i].body);
								jQuery(belowDiv).html(resultHtml).click(function(e){
									var target = jQuery(e.target);
									if(!target.is("a") && !target.is(".twitter") && !target.is(".userPicSmall img")){
										location.href = "/common/html/twitDetail.html?id=" + jQuery.data(this, "id");
									}
									if(target.is(".twitter")){
										FKRcmno.openTwitPopup("RT @" + jQuery.data(this, "owner") + " " + jQuery.data(this, "bodyTxt") + " ", jQuery.data(this, "id"), "hot");
									}
								});
								liObj.appendChild(belowDiv);
								jQuery(belowDiv).animate({ top: 0 }, 600);
								jQuery(aboveDiv).slideUp(600);	
							}
						}, 1100);
					}
				}
			},
			complete : function(){
			}
		});
	},
	// request for Today's Best RT
	getTodayRT : function(url){
		var rankDivObj = jQuery("#todayList ul");
			
		jQuery.ajax({
			type: "GET",
			url: url,
			dataType: "json",
			success: function(data){
				if(data != null && data.rankedTwitList != null){
					var jsonObj = data.rankedTwitList;
					var resultHtml = "";
					rankDivObj.html("");
					for(var i = 0 ; i < jsonObj.length ; i++){
						var liObj;
						liObj = document.createElement("li");
						resultHtml = "";
						resultHtml += "<span class='twitter'><span class='rank_span'><span class='rank'>" + jsonObj[i].rtRank + "위</span>";
						resultHtml += "<br/>" + jsonObj[i].rtCount + "</span></span>";
						resultHtml += "<span class='userPicSmall'><a href='" + twitterUrl + jsonObj[i].owner + "' target='_blank'><img src='http://img.tweetimag.es/i/" + jsonObj[i].owner + "' /></a></span>";
						resultHtml += "&nbsp;&nbsp;<a class='twitter-anywhere-user' href='" + twitterUrl + jsonObj[i].owner + "' target='_blank'>@" + jsonObj[i].owner + "</a>&nbsp;&nbsp;<span class='twit_body'>" + (jsonObj[i].body).urlAutoLink() + "</span>";
						
						jQuery.data(liObj, "id", jsonObj[i].id);
						jQuery.data(liObj, "owner", jsonObj[i].owner);
						jQuery.data(liObj, "bodyTxt", jsonObj[i].body);
						jQuery(liObj).html(resultHtml).click(function(e){
							var target = jQuery(e.target);
							if(!target.is("a") && !target.is(".twitter") && !target.is(".userPicSmall img")){
								location.href = "/common/html/twitDetail.html?id=" + jQuery.data(this, "id"); //  + "&flg=" + "today";
							}
							if(target.is(".twitter")){
								FKRcmno.openTwitPopup("RT @" + jQuery.data(this, "owner") + " " + jQuery.data(this, "bodyTxt") + " ", jQuery.data(this, "id"), "today");
							}
						});
						rankDivObj.append(liObj);
					}
				}
			},
			complete : function(){
			}
		});
	},
	// request for Picture RT
	getPictureRT : function(url){
		var rankDivObj = jQuery("#picList ul");
			
		jQuery.ajax({
			type: "GET",
			url: url,
			dataType: "json",
			success: function(data){
				if(data != null && data.rankedTwitList != null){
					var jsonObj = data.rankedTwitList;
					var resultHtml = "";
					rankDivObj.html("");
					for(var i = 0 ; i < jsonObj.length ; i++){
						var imageObj = null;
						var linkObj = null;
						if(jsonObj[i].links.image){
							imageObj = jsonObj[i].links.image[0];
						}else if(jsonObj[i].links.link){
							linkObj = jsonObj[i].links.link[0];
						}
						
						var liObj = document.createElement("li");
						resultHtml = "";
						resultHtml += "<div class='twitContent'>";
						resultHtml += "<span class='twitter'><span class='rank_span'><span class='rank'>" + jsonObj[i].rtRank + "위</span>";
						resultHtml += "<br/>" + jsonObj[i].rtCount + "</span></span>";
						resultHtml += "<span class='userPicSmall'><a href='" + twitterUrl + jsonObj[i].owner + "' target='_blank'><img src='http://img.tweetimag.es/i/" + jsonObj[i].owner + "' /></a></span>";
						resultHtml += "&nbsp;&nbsp;<a class='twitter-anywhere-user' href='" + twitterUrl + jsonObj[i].owner + "' target='_blank'>@" + jsonObj[i].owner + "</a>&nbsp;&nbsp;<span class='twit_body'>" + (jsonObj[i].body).urlAutoLink() + "</span>";
						resultHtml += "</div>";
						if(imageObj){
							resultHtml += "<div class='thumb'><img src='" + imageObj.thumbnailUrl + "'/></div>";
						}
						jQuery.data(liObj, "id", jsonObj[i].id);
						jQuery.data(liObj, "owner", jsonObj[i].owner);
						jQuery.data(liObj, "bodyTxt", jsonObj[i].body);
						jQuery(liObj).html(resultHtml).click(function(e){
							var target = jQuery(e.target);
							if(!target.is("a") && !target.is(".twitter") && !target.is(".userPicSmall img")){
								location.href = "/common/html/image.html?id=" + jQuery.data(this, "id"); // + "&flg=" + "image";
							}
							if(target.is(".twitter")){
								FKRcmno.openTwitPopup("RT @" + jQuery.data(this, "owner") + " " + jQuery.data(this, "bodyTxt") + " ", jQuery.data(this, "id"), "image");
							}
						});
						rankDivObj.append(liObj);						
					}
				}
			},
			complete : function(){
			}
		});
	},
	// RankList for Twit Detail
	getRankUlList : function(data){
		var returnHTML = "<div>";
		if(data && data.realtime){
			returnHTML += "<button class='txt90' title='실시간 RT 순위'><span class='label'>" + data.realtime.rtRank + "위&nbsp;&nbsp;" + data.realtime.rtCount + "&nbsp;RT</span></button>";
		}
		if(data && data.hot){
			returnHTML += "<button class='txt90' title='급상승 RT 순위'><span class='label'>" + data.hot.rtRank + "위&nbsp;&nbsp;" + data.hot.rtCount + "&nbsp;RT</span></button>";
		}
		if(data && data.today){
			returnHTML += "<button class='txt90' title='오늘의 RT 순위'><span class='label'>" + data.today.rtRank + "위&nbsp;&nbsp;" + data.today.rtCount + "&nbsp;RT</span></button>";
		}
		if(data && data.image){
			returnHTML += "<button class='txt90' title='인기 사진'><span class='label'>" + data.image.rtRank + "위&nbsp;&nbsp;" + data.image.rtCount + "&nbsp;RT</span></button>";
		}
		returnHTML += "</div>";
		var rnkObj = jQuery(returnHTML);
		var btnObjs = rnkObj.find("button");
		if(btnObjs.length >= 2){
			for(var i=1; i<= btnObjs.length; i++){
				var btnObj = jQuery(btnObjs[i-1]);
				if(i == 1){
					btnObj.addClass("left");
				}else if(i == btnObjs.length){
					btnObj.addClass("right");
				}else{
					btnObj.addClass("middle");
				}
			}
		}
		return rnkObj.html();
	},
	// request for Twit Detail
	getTwitDetail : function(containerID, retwitID, flg, id){
		var containerObj = jQuery(containerID);
		var fbCmmObj = jQuery("#fbComment");
		
		if(!id){
			containerObj.html("");
			FKRcmno.getIntegratedComments(retwitID);
			fbCmmObj.html("");
			return false;
		}
		var retwitObj = jQuery(retwitID);
		var listULObj = retwitObj.find("ul");
		
		FKRcmno.showActivity();
		jQuery.ajax({
			type: "GET",
			url: "/rank/detailreplies.php?flg=" + flg + "&id=" + id,
			dataType: "json",
			success: function(data){
				if(data != null && data.twit){
					var rtTwitResult = data.twit;
					var resultHtml = "";
					
					resultHtml += "<content><p>" + (rtTwitResult.body).urlAutoLink() + "</p></content>";
					if (rtTwitResult.links.image) {
						var imageObj = null;
						for(var i = 0; i < rtTwitResult.links.image.length; i++){
							imageObj = rtTwitResult.links.image[i];
							resultHtml += "<div class='twitDetailImage'><a href='" + imageObj.url + "' target='_blank'><img src='" + FKRcmno.getImageUrl(imageObj) + "' /></a></div>";
						}
					}
					if (rtTwitResult.links.video) {
						var videoObj = null;
						for(var i = 0; i < rtTwitResult.links.video.length; i++){
							videoObj = rtTwitResult.links.video[i];
							resultHtml += "<div class='twitDetailVideo'>" + FKRcmno.getVideoHtmlStr(videoObj) + "</div>";
						}
					}
					resultHtml += "<div class='header_pic'><a href='" + twitterUrl + rtTwitResult.owner + "' target='_blank'><img class='custom_shadow' title='" + rtTwitResult.owner + "' alt='" + rtTwitResult.owner + "' src='http://img.tweetimag.es/i/" + rtTwitResult.owner + "_b' /></a></div>";
					resultHtml += "<ul class='header_ul'>"
					resultHtml += "<li><div class='header_owner'><a class='twitter-anywhere-user' href='" + twitterUrl + rtTwitResult.owner + "' target='_blank'>" + rtTwitResult.owner + "</a></div></li>";
					resultHtml += "<li><div class='rankList tiptip'>" + FKRcmno.getRankUlList(data.rank) + "</div></li>";
					resultHtml += "</ul>";
					resultHtml += "<input type='hidden' class='owner' value='" + rtTwitResult.owner + "' />";
					resultHtml += "<div class='newLine'>";
					resultHtml += "<span class='gpb'><div class='g-plusone' data-size='standard' data-annotation='none' data-href='" + detailUrl + id + "'></div></span>";
					resultHtml += "<span class='fbb'></span><span class='tb'></span>";
					resultHtml += "</div>";
					containerObj.html(resultHtml);
					
					jQuery.data(containerObj, "bodyTxt", rtTwitResult.body);
					jQuery.data(containerObj, "owner", rtTwitResult.owner);
				}
			},
			complete : function(){
				FKRcmno.hideActivity();
				
				var bodyTxt = jQuery.data(containerObj, "bodyTxt");
				var ownerID = jQuery.data(containerObj, "owner");
				// Bind Event for Twitter Button
				containerObj.find(".tb").click(function(){
					FKRcmno.openTwitPopup("RT @" + ownerID + " " + bodyTxt, id, flg);
				});
				// Bind Event for Facebook Button
				containerObj.find(".fbb").click(function(){
					if(containerObj.find(".twitDetailImage img").get(0)){
						FKRcmno.openFacebookPopup(bodyTxt, containerObj.find(".twitDetailImage img").attr("src"), id, flg);
					}else{
						FKRcmno.openFacebookPopup(bodyTxt, twitOwnerUrl + ownerID, id, flg);
					}
				});
				
				// Tooltip
				containerObj.find(".tiptip a.button, .tiptip button").tipTip();
				// Facebook Comment
				fbCmmObj.html("<div class='fb-comments' data-href='" + detailUrl + id + "' data-num_posts='10' data-width='628'></div>");
				if(window.FB){ FB.XFBML.parse(fbCmmObj.get(0)); }
				// jQuery.ajax({
					// type: "GET",
					// url: "https://www.facebook.com/plugins/comments.php",
					// data: {
						// href : homeUrl + "/common/html/twitDetail.html?id=" + id,
						// api_key : "186908458011800"
					// },
					// success: function(data){ console.log(data);	},
					// complete: function(){
						// FB.api("/fql", {
							// q : "SELECT comments_fbid FROM link_stat WHERE url = '" + homeUrl + "/common/html/twitDetail.html?id=" + id + "'"
						// }, function(response) {
							// if(response.data && response.data.length > 0){
								// jQuery.data(containerObj, "fbid", response.data[0].comments_fbid);
								// console.log(response.data[0].comments_fbid);
							// }
						// });
					// }
				// });
				// call Livere initialize
				//initLivere(detailUrl + id, "livereDiv", bodyTxt);
				// Bind Event for Google +1 Button
				FKRcmno.renderGooglePlusBtn("gpb");
				
				// Twitter Facebook Check Button
				var chkBtnGrp = jQuery("#twCkBtn, #fbCkBtn").unbind("click").bind("click", function(){
					if(this.checked != true) return;
					
					var curJqObj = jQuery(this), curObj = this;
					this.checked = false;
					switch(this.id){
						case "twCkBtn": {
							// check login
							if(FKRsign.isTwConnected()){
								curObj.checked = true;
								curJqObj.addClass("on");
							}else{
								FKRcmno.openAuthModal("#FKRAuthModal", "Twitter 인증 중입니다.<br/>인증창이 열리지 않을 경우, 팝업차단 설정을 해제 해 주세요."
								, function(){
									twitterObj.signIn();
								}, function(){
									
								});
							}
							break;
						}
						case "fbCkBtn": {
							// check login
							if (FKRsign.isFbConnected()) {
								curObj.checked = true;
								curJqObj.addClass("on");
							}else{
								FKRcmno.openAuthModal("#FKRAuthModal", "Facebook 인증 중입니다.<br/>인증창이 열리지 않을 경우, 팝업차단 설정을 해제 해 주세요."
								, function(){
									FB.login(function(response){ 
										if (response.authResponse) {
											curObj.checked = true;
											curJqObj.addClass("on");
										}else{
											curObj.checked = false;
											curJqObj.removeClass("on");
										}
									}, { scope : "read_stream,publish_stream,publish_actions,user_photos,user_videos,user_checkins" });
								}, function(){
									
								});
							}
							break;
						}
					}
				});
				// Bind click event for Post Button
				jQuery("#post_msg_btn").click(function(){
					FKRcmno.displayMsg("#resultMsg", "", "txtError", "", false);
					FKRcmno.displayMsg("#resultMsg", "", "txtSuccess", "", false);
					var messageVal = jQuery("#cmntMessage").val(), 
						fbCkBtn = jQuery("#fbCkBtn"), 
						twCkBtn = jQuery("#twCkBtn");
					if(!(fbCkBtn.hasClass("on") && FKRsign.isFbConnected()) 
						&& !(twCkBtn.hasClass("on") && FKRsign.isTwConnected()) ){
						FKRcmno.displayMsg("#resultMsg", "서비스를 한개이상 선택해주세요", "alert-info", "", true);
						return false;
					}
					if(fbCkBtn.hasClass("on") && FKRsign.isFbConnected()){
						FKRcmno.postFBComment(messageVal, id, flg, retwitID, jQuery.data(containerObj, "fbid"));	
					}
					if(twCkBtn.hasClass("on") && FKRsign.isTwConnected()){
						FKRcmno.postTwitStatus(messageVal, "RT @" + ownerID + " " + bodyTxt, id, flg);
					}
				});
			}
		});
		FKRcmno.getIntegratedComments(retwitID, id, flg);
	},
	// Comments
	getIntegratedComments : function(containerID, id, flg){
		var retwitObj = jQuery(containerID);
		// Comment
		var comments = new Array();
		if(!id){ retwitObj.html(""); return false; }
		
		FKRcmno.showActivity();
		
		// Request for reply-List
		jQuery.ajax({
			type: "GET",
			url: "/rank/detailreplies.php?flg=" + flg + "_replies" + "&id=" + id,
			dataType: "json",
			success: function(data){
				if (data != null && data.replies) {
					comments = comments.concat(data.replies);
				}
			},
			complete : function(){
				// Request for Facebook comments
				//var curHref = detailUrl + id;
				var curHref = homeUrl + "/common/html/twitDetail.html?id=" + id;
				FB.api("/comments", "get", { date_format: "U", ids: curHref }, function(response){
					if(response[curHref]){
						comments = comments.concat(response[curHref].data);
						comments.sort(cmntSort);
					}
					if(comments && comments.length > 0){
						for (var i = 0; i < comments.length; i++) {
							var cmntObj = document.createElement("article");
							var rtTwitsHtml = "";
							rtTwitsHtml += "<div class='detail_tweets'>";
							if (comments[i]["from"]) {
								var _uid = comments[i].from.id;
								var _msg = comments[i].message;
								var _uname = comments[i].from.name;
								var _date = getConvDateFKR(comments[i].created_time, "f").getYMDdate();
								rtTwitsHtml += "<div class='header_pic'><a href='http://www.facebook.com/profile.php?id=" + _uid + "' target='_blank'><img class='custom_shadow' title='" + _uname + "' alt='" + _uname + "' src='https://graph.facebook.com/" + _uid + "/picture' /></a></div>";
								rtTwitsHtml += "<content><span class='uPic'><img src='/img/facebook_20px.png'/></span>";
								rtTwitsHtml += "<p>" + "<a class='txtBold' href='http://www.facebook.com/profile.php?id=" + _uid +"' target='_blank'>" + _uname + "</a>"
								rtTwitsHtml += "&nbsp;" + _date + "<br/>" + (_msg).urlAutoLink() + "</p></content>";
								// service Flag and id
								jQuery.data(cmntObj, "svFlg", "fb");
								jQuery.data(cmntObj, "cmntID", comments[i].id);
							}else{
								rtTwitsHtml += "<div class='header_pic'><a href='" + twitterUrl + comments[i].owner + "' target='_blank'><img class='custom_shadow' title='" + comments[i].owner + "' alt='" + comments[i].owner + "' src='http://img.tweetimag.es/i/" + comments[i].owner + "' /></a></div>";
								rtTwitsHtml += "<content><span class='uPic'><img src='/img/twitter_32px.png'/></span>";
								rtTwitsHtml += "<p>" + "<a class='twitter-anywhere-user txtBold' href='" + twitterUrl + comments[i].owner + "' target='_blank' >" + comments[i].owner + "</a>"
								rtTwitsHtml += "&nbsp;" + getConvDateFKR(comments[i].registDate, "t").getYMDdate() + "<br/>" + (comments[i].comment).urlAutoLink() + "</p></content>";
								// service Flag and id
								jQuery.data(cmntObj, "svFlg", "tw");
								jQuery.data(cmntObj, "cmntID", comments[i].twitId);
							}
							cmntObj.innerHTML = rtTwitsHtml;
							retwitObj.append(cmntObj);
						}
					}
					FKRcmno.hideActivity();
				});
			}
		});
	},
	// get Url for Image
	getImageUrl : function(imageObj){
		var urlStr = "";
		switch (imageObj.imageProviderName){
			case "twitpic":
				urlStr = "http://twitpic.com/show/large/" + imageObj.imageId;
				break;
			case "imgLy":
				//urlStr = "http://api.plixi.com/api/TPAPI.svc/imagefromurl?size=medium&url=" + imageObj.url;
				urlStr = "http://img.ly/show/large/" + imageObj.imageId;
				break;
			case "yfrog":
				urlStr = "http://yfrog.com/" + imageObj.imageId + ":iphone";
				break;
			case "img.ly":
				urlStr = "http://img.ly/show/large/" + imageObj.imageId;
				break;
			default:
				urlStr = "javascript:void(0);";
				break;
		}
		return urlStr;
	},
	// get Url for video
	getVideoUrl : function(videoObj){
		var urlStr = "";
		switch (videoObj.videoProviderName){
			case "youtube":
				urlStr = videoObj.viewUrl;
				break;
			case "ustream":
				urlStr = videoObj.viewUrl;
				break;
			default:
				urlStr = "javascript:void(0);";
				break;
		}
		return urlStr;
	},
	// get html string for video object
	getVideoHtmlStr : function(videoObj){
		var urlStr = "";
		var resultStr = "";
		switch (videoObj.videoProviderName){
			case "youtube":
				urlStr = FKRcmno.getVideoUrl(videoObj);
				resultStr += "<object>";
				resultStr += "<param name='movie' value='" + urlStr + "?version=3&amp;feature=player_embedded' />";
				resultStr += "<param name='allowFullScreen' value='true' /><param name='allowScriptAccess' value='true' />";
				resultStr += "<embed src='" + urlStr + "?version=3&amp;feature=player_embedded' type='application/x-shockwave-flash' allowfullscreen='true' allowScriptAccess='always' width='570' height='321'>";
				resultStr += "</object>";
				break;
			case "ustream":
				urlStr = FKRcmno.getVideoUrl(videoObj);
				resultStr += "<object>";
				resultStr += "<param name='movie' value='" + urlStr + "'>";
				resultStr += "<param name='flashvars' value='autoplay=false&amp;brand=embed'>";
				resultStr += "<param name='allowfullscreen' value='true' /><param name='allowscriptaccess' value='true' />";
				resultStr += "<embed src='" + urlStr + "' flashvars='autoplay=false&amp;brand=embed' type='application/x-shockwave-flash' allowfullscreen='true' allowscriptaccess='always' width='570' height='321'>";
				resultStr += "</object>";
				break;
			default:
				resultStr = "";
				break;
		}
		return resultStr;
	},
	// request for Image List
	getImageList : function(containerID, from, to){
		var rankDivObj = jQuery(containerID);
		var rankDivUlObj = jQuery(containerID + " ul");
		var resultHtml = "";
		
		rankDivObj.parent().find(".moreView").css("visibility", "hidden");
		FKRcmno.showActivity();
		
		jQuery.ajax({
			type: "GET",
			url: "/rank/image.php?from=" + from + "&to=" + to,
			dataType: "json",
			success: function(data){
				if(data != null && data.rankedTwitList != null){
					var jsonObj = data.rankedTwitList;
					
					for(var i = 0 ; i < jsonObj.length ; i++){
						var imageObj = null;
						var linkObj = null;
						if(jsonObj[i].links.image){
							imageObj = jsonObj[i].links.image[0];
						}else if(jsonObj[i].links.link){
							linkObj = jsonObj[i].links.link[0];
						}
						
						if(imageObj){
							var liObj = document.createElement("li");
							var liHTML = "<div class='thumb'>";
							liHTML += "<img src='" + imageObj.thumbnailUrl + "' />";
							liHTML += "</div>";
							jQuery.data(liObj, "id", jsonObj[i].id);
							jQuery(liObj).html(liHTML).click(function(e){
								// overflow setting for View of imageList
								FKRcmno.getTwitDetail("#twitBody", "#reTwits", "detail", jQuery.data(this, "id"));	
								FKRcmno.showOverlay(e);
							});
							rankDivUlObj.append(liObj);
						}else{
							//resultHtml = "<li class='ui-li ui-li-static ui-body-c'>";
							resultHtml = "<li>";
							resultHtml += "<div class='thumb'>";
							resultHtml += "<a class='group' href='/common/img/no-image-big.jpg' target='_blank'>";
							resultHtml += "<p> " + jsonObj[i].body + "</p>";
							resultHtml += "</a>";
							resultHtml += "</div>";
							resultHtml += "</li>";
						}
					}
				}
			},
			complete : function(){
				FKRcmno.hideActivity();
				if(to > 100){
					rankDivObj.parent().find(".moreView").css("display", "none");
				}else{
					rankDivObj.parent().find(".moreView").css("visibility", "visible");
				}
			}
		});
	},
	// show Overlay layer
	showOverlay : function(event){
		var overlayObj = jQuery(".fullOverlay");
		overlayObj.css("display", "block");
		jQuery.data(overlayObj.get(0), "clkPosY", (event ? event.pageY : 0));
		jQuery(window).scrollTop(0);
		
		// overflow setting for View of imageList
		if(location.href.indexOf("image") != -1){
			if(jQuery.browser.msie){
				overlayObj.css("min-height", jQuery("body").outerHeight());
			}else{
				overlayObj.css("min-height", jQuery("html").outerHeight());
			}
		}
		// Bind Event for overlay layer clicked
		overlayObj.bind("click", function(e){
			if(jQuery.browser.msie){
				if(e.target.childNodes.length > 1 && e.target.lastChild.childNodes.length == 1 
					&& e.target.lastChild.firstChild.id == "content_detail"){
					FKRcmno.closeOverlay();
				}
			}else{
				if(e.target.childElementCount > 1 && e.target.lastElementChild.childElementCount == 1 
					&& e.target.lastElementChild.firstElementChild.id == "content_detail"){
					FKRcmno.closeOverlay();
				}
			}
		});
		// Bind Event overlay close Button
		overlayObj.find(".overlayCloseDiv").bind("click", function(e){
			FKRcmno.closeOverlay();
		});
	},
	// close Overlay and initializing
	closeOverlay : function(){
		var overlayObj = jQuery(".fullOverlay");
		// set css and unbind click event
		overlayObj.css("display", "none").unbind("click").find(".overlayCloseDiv").unbind("click");
		jQuery(window).scrollTop(eval(jQuery.data(overlayObj.get(0), "clkPosY")) - 150);
		FKRcmno.getTwitDetail("#twitBody", "#reTwits", "detail");
	}
};	// End of FKRcmno

jQuery(document).ready(function(){
		// Bind Default Search
	var page = 1;
	var pageSize = 10;
	var keywordObj = jQuery("#searchKeyword");
	var detailKeywordObj = jQuery("#detailSearch #detailSearchKeyword");
	
	jQuery(".prev").click(function() {
		if (processing) return false;
		if (page > 1) {
			page = page - 1;
			FKRcmno.feedTweets(page, pageSize);
		}
		return false;
	});  
	jQuery(".next").click(function() {
		if (processing) return false;
		page = page + 1;
		FKRcmno.feedTweets(page, pageSize);
		return false;
	});
	
	// Bind search Button Event
	jQuery("#searchImg button").bind("click", function(){
		document.searchForm.submit();
	});
	jQuery("#searchForm").bind("submit", function(){
		if(document.getElementById("tweets")){
			FKRcmno.feedTweets(1, pageSize);
		}else{
			this.action = "/common/html/search.html";
		}
	});
	keywordObj.keydown(function(event){
		if(event.keyCode == 13){
			FKRcmno.feedTweets(1, pageSize);
		}
	});
	if(keywordObj != null && keywordObj.val() != ""){
		FKRcmno.feedTweets(1, pageSize);
	}
	// Bind Event Detail Search Button
	jQuery("#detailSearch #detailSubmit").click(function(){
		rad = jQuery("#detailSearch #radius").val();
		if(detailKeywordObj.val() != ""){
			keywordObj.val(detailKeywordObj.val());
		}
		FKRcmno.feedTweets(1, pageSize);
	});
	detailKeywordObj.keypress(function(e){
		if(e.keyCode == 13){
			jQuery("#detailSearch #detailSubmit").click();
		}
	});
	
	// Bind Event for [Go Top] Button
	jQuery(window).scroll(function(){
		if (jQuery(window).scrollTop() > 150) {
			jQuery("#toTop").fadeIn("slow");
		} else {
			jQuery("#toTop").fadeOut("slow");
		}
	});
	jQuery("#toTop").unbind("click").click(function(){
		jQuery("html, body").animate({
			scrollTop: 0
		}, 600, "linear");
		jQuery("#toTopHover", this).stop().animate({
			"opacity": 0
		}, 600, "linear");
		return false;
	});
	FKRcmno.dropdownBind();
	
}).bind("click", function (e) {
	// Close open dropdown slider/s by clicking elsewhwere on page
	if (e.target.id != jQuery(".dropdown").attr("class")) {
		jQuery(".dropdown-slider").slideUp();
		jQuery("span.toggle").removeClass("active");
	}
	if (jQuery(e.target.offsetParent).attr("class") != "twitSign") {
		jQuery("div.twitSign").find("ul.submenu").hide();
		jQuery("#connectedUser, #connectedUserFb").removeClass("active");
	}
}).keyup(function(e){
	if(e.keyCode == 27 && jQuery(".fullOverlay").css("display") == "block"){
		FKRcmno.closeOverlay();
	}
}); 
