var givingCmt = 0;
var CmtHtml = new Array();
var chatCheck = new Array();
var oldestAcid = new Array();
var feedKey ='';

function setFeeder(feed, amt) {
 feedKey += '&chl[]='+feed + '&amt[]='+amt;
}

var checkChatTimer = null;
var time2check = 180000;

/* chat */
function submitChat() {
  if(!hasLoggedOn) {
	  alert('You have to login to share your thought');
		return;
	}
  var message = $('#chat').val();
	if(message == '') return;
	var defChat = $('#chat').attr('ref');
	if(message == defChat) return;
	ch = $('#channel');
	morepara = (ch && ch.val()) ? '&t2=' + ch.val() :'';
  
  $.ajax({
    type: 'POST',
		dataType: "json",
		url: '/ajax/addChat.php',
		data: 'chl=chatid&msg='+escape($('#chat').val())+ morepara,

		success: function(data) {
			if (data.success == false) {
				var error_code = data.error_code;

				if (error_code == -1) {
					alert("Your appchat contains language not appropriate here. Please reivse your chat and try again. Sorry for the inconvenience");
				}
			}
		},

    complete: function (data) {
		  //showChat(data)
			checkChat()
	  }
  });

	$('#chat').val('');
  resetChatLine();
}

function focusChatline() {
  var defChat = $('#chat').attr('ref');
  if( $('#chat').val() == defChat) $('#chat').val('');
	$('#chat').addClass('sharelinefocus');
}

function resetChatLine() {
  var defChat = $('#chat').attr('ref');
  if( $('#chat').val() == '') $('#chat').val( defChat);
	$('#chat').removeClass('sharelinefocus');
  $('#chat').blur();
}

function stopChatTimer() {
  if( checkChatTimer)
	  clearTimeout(checkChatTimer);
}

function checkChat() {
  if(givingCmt) return;
  $.ajax({
		type: 'GET',
		url: 'ajax/listChat.php',
		data: feedKey, 
		complete: function (data) {
		  showChat(data, 1)
		}
	});
}

function getOldChat(ch) {
  lastid =  oldestAcid[ch];
  $.ajax({
	  type: 'GET',
		url: 'ajax/getOldChat.php',
		data: 'ch='+ch + '&last=' + lastid,
		complete: function (data) {
		  showChat(data, -1, ch)
		}
	});
}

function showChat(data, direction, ch) {
	{
	  givingCmt = 0;
	  if( data.responseText != '' && data.responseText != 'null') {
		var responseObject = eval('(' + data.responseText + ')');
		  for(i=responseObject.length - 1;i>=0;i--) {
 	  		if(responseObject[i]) {
				  var CdivID = responseObject[i].divID;
					if(chatCheck[CdivID]) continue;
          var msg = responseObject[i].message;
					var	avator = responseObject[i].avator;
					var speaker =  responseObject[i].speaker; 
					var time = responseObject[i].ago;
					var acid = responseObject[i].acid; 
					var chl =  responseObject[i].chl;
					var chat_type = responseObject[i].type;
					var uid = responseObject[i].speakerID;
					var profile_url = responseObject[i].speakerProfile;
          var ownpost = responseObject[i].ownpost;
					if(! oldestAcid[chl]) oldestAcid[chl] = acid;
					else if( oldestAcid[chl] >acid)  oldestAcid[chl] = acid;
          var commentlink = '#';
					var viewlink = '#';
          var cmt_total = responseObject[i].cmt_total;
					if( cmt_total ) {
            var cmt_msg = responseObject[i].cmt_message;
	  			  var cmt_avator = responseObject[i].cmt_avator;
		  			var cmt_speaker =  responseObject[i].cmt_speaker;
            var cmt_time = responseObject[i].cmt_ago;
						var userid = responseObject[i].cmt_speakerID;
						var cmt_profile_url = responseObject[i].cmt_speakerProfile;
            var cmt_ownpost = responseObject[i].cmt_ownpost;
            var cmt_acid = responseObject[i].cmt_acid;
						var numOfCmt = (cmt_total == 1) ? '1 Comment' : cmt_total +' Comments';
						var divID = '#cmt_'+acid;
						if(CmtHtml[divID]) 
						  var cmtBox = CmtHtml[divID];
						else {
              var removeBox = cmt_ownpost ? '<a class="remove" href="javascript:deleteChat('+acid+','+cmt_acid+',\'cmtBox_'+acid+'_0\', \''+ chl+'\')"><div class="removeBox">Remove</div></a>': '';
						  var cmtBox = '\n<div class="cmtBox" id="cmtBox_'+acid+'_0"><div class="avator" ><img src="'+cmt_avator+'" /></div>' +
						//'<div class="detail"><div class="chatdetail"><a class="user" href="profile.php?userid='+userid+'">' + cmt_speaker + '</a> ' + removeBox+
						'<div class="detail"><div class="chatdetail"><a class="user" href="'+cmt_profile_url+'">' + cmt_speaker + '</a> ' + removeBox+
						' <span class="message">'+cmt_msg +'</span><br />'+
						            '<span class="time">' + cmt_time + '</span></div></div><div class="end"></div></div>\n';        }
					} else {
            var cmt_msg = ''; cmt_avator = ''; cmt_speaker =  ''; cmt_time = '';
						var numOfCmt = 'Comment';
						var cmtBox = '<div class="cmtBox" id="cmtBox_'+acid+'_0"></div>';
					}
					var cmt_class = cmt_total ? 'comment' : 'comment hidden';
					var viewcomment = cmt_total > 1 ? 'viewcomment' : 'viewcomment hidden';

					var sharebox = '<div class="ashare" style="float: left; margin-left: 5px;"><a href="javascript: showAppChatShare(\''+acid+'\')">Share</a></div>';
					if ((chat_type != 500 && chat_type != 501) || !hasLoggedOn) {
						sharebox = '';
					}

          var removeBox = ownpost ? '<a class="remove" href="javascript:deleteChat('+acid+','+acid+',\''+CdivID+'\', \''+ chl+'\')"><div class="removeBox">Remove</div></a>': '';
					var chatbox = '<div class="avator" ><img src="'+avator+'" /></div>' +
					  //'<div class="detail"><div class="chatdetail"><a class="user" href="profile.php?userid='+uid+'">' + speaker +
					  '<div class="detail"><div class="chatdetail"><a class="user" href="'+profile_url+'">' + speaker +
						'</a> ' + removeBox+ ' <span class="message">'+msg +'</span><br />'+
						'<div class="time">' + time + '</div><div class="cmt" id="num_cmt_' + acid + '"><a href="javascript:ViewCmt('+acid+',\''+chl+'\')">' + numOfCmt + '</a></div>'+ sharebox +
						'<div class="clear"></div></div><div class="'+cmt_class+'" id="cmt_'+ acid+'">'+cmtBox + '</div></div><div class="clear"></div>';
						
					temp = '\n<div class="chatbox" id="'+CdivID+'">'+chatbox+'</div>'
					    + '<div class="clear"></div>\n';
				
					chatCheck[CdivID] = 1;
					if(direction > 0) $('#chatdiagloue_'+chl).prepend(temp);
					else $('#chatdiagloue_'+chl).append(temp);
			  } else {
			    // empty response
			  }
			  ldiv = $('#loading_'+chl);
		    if(ldiv) ldiv.remove();
        if(! responseObject[i].more) {
          if($('#'+responseObject[i].chl+'_more')) $('#'+responseObject[i].chl+'_more .button').remove();
        }
		  }
		} else {
      if( channels ) {
        for(var i=channels.length-1; i>=0; i--) {
		      ldiv = $('#loading_'+ channels[i]);
			    if(ldiv) ldiv.html('Oops. It is so quiet, you may start your chat here');
        }
      }
      // null response, so no 'more' for this ch
			if($('#'+ch+'_more')) $('#'+ch+'_more .button').remove();
		}
	}
	setTimeout('checkChat();', time2check);
}
	setTimeout('checkChat();', time2check);

function showAppChatShare(acid) {
	var js_url = 'js/gigya.share.js.php?share=appchat&acid='+acid;
	$.getScript(js_url);
}

function ViewCmt( acid, chl) {
	var d = $('#chatdiagloue_'+chl+ ' #cmt_'+acid);
	d.removeClass('hidden');
	d.load('ajax/listComment2.php?chl='+chl+'&tid='+acid, function() {storeComment(acid)});
  if(!hasLoggedOn) {
	  alert('You have to login to make a comment');
		return;
	}
}

function submitComment(chl,acid) {
  var message = $('#commentbox_'+acid).val();
	if(message == '') {
	  return;
	}
	var d = $('#chatdiagloue_'+chl+ ' #num_cmt_'+acid);
	d.load('ajax/addComment2.php?chl='+chl+'&acid='+acid+'&msg='+ escape(message), 
	  function() {  ViewCmt(acid, chl); } );
}

function storeComment(acid) {
  var divID = '#cmt_'+acid;
  tempHtml[divID] = $(divID).html();
}

function updateCommentNum(data,i) {
	if( data.responseText != '') {
		var responseObject = eval('(' + data.responseText + ')');
    var cmt_total = responseObject[0].cmt_total;
		var viewcomment = cmt_total > 0 ? 'viewcomment' : 'viewcomment hidden';
		$('#viewcomment_'+i).html('<p class="'+ viewcomment +'"><a href="javascript:getComment('+acid+','+i+')">View All '+ cmt_total + ' Comments</a></p>');
		 //givingCmt --;
  }
}


function showComment(data, i) {
  if( data.responseText != '') {
     var responseObject = eval('(' + data.responseText + ')');
		 id='#comment_' + i + '_0' ;
		 var xhtml ='';
		 for(var j=0; j< responseObject.length;j++) {
		   var cmt_avator = responseObject[j].avator;
			 var cmt_speaker = responseObject[j].speaker;
			 var cmt_msg = responseObject[j].message;
			 var cmt_time = responseObject[j].ago;
       xhtml += '<img class="avator" src="'+cmt_avator + '" />' 
			  +  '<p><b> ' + cmt_speaker + '</b> ' + cmt_msg 
			  + '<br /><span class="time">' + cmt_time + '</span></p>'
				+ '<div class="clear separator"></div>';
		 }
		 $(id).removeClass('hidden');
		 $(id).html(xhtml);
	}
}
function deleteChat(pid, acid, divID, chl) {
  $.post('ajax/deleteChat.php', {'acid': acid}, function() {
    $('#'+divID).remove();
    if( pid!=acid) {
       var d = $('#num_cmt_'+pid);
        d.load('ajax/addComment2.php?chl='+chl + '&acid='+pid, 
            function() {  ViewCmt(pid,chl); } );
    }
    alert('Your message has been removed');
    //$('#rateDummy').fadeIn().html('Your chat been removed').delay(600).close();
  });
}

(function() {
	update_profile_status = function() {
		var message = $('#chat').val();
	  var defChat = $('#chat').attr('ref')	;
		if (message != '' && message !=  defChat) {
			$.ajax({
				"type": 'POST',
				"url": "/actions.php",
				"dataType": "json",

				"data": {
					"msg": message,
					"action": "update-status",
					"return_url": "profile.php"
				},

				"success": function(data, status, xhr) {
					if (data.success) {
						$('div#detail p.status').html(xhtmlencode(message) + '<br/><span class="date">'+data.datestr+'</span>');
					} else if (data.error_code == 9201) {
						window.location.href = "signin.php";						
					} else if (data.error_code == 9301) {
						alert("You input is rejected because it contains inappropriate words or phases. Please revise your message and try again.");
					}
				}
			});
		}
	};
})();

