/*
 * Laconica - a distributed open-source microblogging tool
 * Copyright (C) 2008, Controlez-Vous, Inc.
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

$(document).ready(function(){
	// count character on keyup
	/*function counter(event){
		var maxLength = 140;
		var currentLength = $("#notice_data-text").val().length;
		var remaining = maxLength - currentLength;
		var counter = $("#notice_text-count");
		counter.text(remaining);

		if (remaining <= 0) {
			$("#form_notice").addClass("warning");
		} else {
			$("#form_notice").removeClass("warning");
		}
	}
	*/
	
	//Saigonica_Team_HuongNguyen Add
	function countert8m(event){
		var maxLength = 140;
		var counter = $("#notice_text-count");
		
		
		if ($("#notice_data-text").val()=="Viết t8m ở đây" || $("#notice_data-text").val()=="Type your t8m here" ){
			counter.text(maxLength);
		}
	}
	//Saigonica_Team_HuongNguyen End
	
	function counter(event){
		var maxLength = 140;
		
		
	
	//TP_Begin	
		//var currentLength = $("#notice_data-text").val().length;
		var currentLength =0;
		var content=$("#notice_data-text").val()
                       .replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g, "drry")
                       .replace(/[\u0800-\uFFFF]/g, "drr")
                       .replace(/[\u0080-\u07FF]/g, "dr");
           
		var sayclass=$("#sayclass").val();
		if(sayclass && (sayclass=='q_music' || sayclass=='q_embed')){  
		   currentLength=calculateMusicLength(content);
		   var remaining = 500 - currentLength;
		}else{
		   currentLength=$("#notice_data-text").val().length;//calculateContentLength(content);
		    var remaining = maxLength - currentLength;
		}
		
	    //var remaining = maxLength - currentLength;
		var counter = $("#notice_text-count");
		counter.text(remaining);
		
		//Saigonica_Team_HuongNguyen Add
		countert8m();
	
		//Saigonica_Team_HuongNguyen End
		
		if (remaining <= 0) {
			$("#form_notice").addClass("warning");
		} else {
			$("#form_notice").removeClass("warning");
		}
		//TP_short_URL_BG
		$("#notice_content").val($("#notice_data-text").val());
		//TP_short_URL_EN
	}
	function calculateContentLength(D){
		  //D=D.replace(/^\s+/,"").replace(/\s+$/,"");   //Khong tinh ky tu trang
			var C=0;
			var E=function(F){
				
				if(F.length>0){
					C+=0
				}else{
					C+=F.length
				}
				return""
			};
			D=D.replace(/https?:\/\/[^\s]*/g,E);
			return D.length+C
	}
			
    function calculateMusicLength(D){
			//D=D.replace(/^\s+/,"").replace(/\s+$/,"");     //Khong tinh ky tu trang
			var C=0;
			var E=function(F){
				
				if(F.length>0){
					C+=0
				}else{
					C+=F.length
				}
				return""
			};
			//D=D.replace(/\<object(.*?)\<\/object\>/g,E);
			D=D.replace(/\<div(.*?)\<\/div><form(.*?)\<\/form><\/div><\/div><br\/><a(.*?)\<\/a>/g,E);
			D=D.replace(/\<embed(.*?)>/g,E);
			D=D.replace(/\<object(.*?)\<\/object\>/g,E);
			return D.length+C
	}
			
	//TP_End		
		

	function submitonreturn(event) {
		if (event.keyCode == 13) {
			$("#form_notice").submit();
			event.preventDefault();
			event.stopPropagation();
			return false;
		}
		return true;
	}

	if ($("#notice_data-text").length) {
		$("#notice_data-text").bind("keyup", counter);
		$("#notice_data-text").bind("keydown", submitonreturn);

		// run once in case there's something in there
		counter();

		// set the focus
		/*$("#notice_data-text").focus();*/
	}

	// XXX: refactor this code	

	var joinoptions = { dataType: 'xml',
					   success: function(xml) { var new_form = document._importNode($('form', xml).get(0), true);
												var leave = new_form.id;
												var join = leave.replace('leave', 'join');
												$('form#'+join).replaceWith(new_form);
												$('form#'+leave).ajaxForm(leaveoptions).each(addAjaxHidden);
											  }
					 };

	var leaveoptions = { dataType: 'xml',
					   success: function(xml) { var new_form = document._importNode($('form', xml).get(0), true);
												var join = new_form.id;
												var leave = join.replace('join', 'leave');
												$('form#'+leave).replaceWith(new_form);
												$('form#'+join).ajaxForm(joinoptions).each(addAjaxHidden);
											  }
					 };
//LN_Begin
/*
	function addAjaxHidden() {
		var ajax = document.createElement('input');
		ajax.setAttribute('type', 'hidden');
		ajax.setAttribute('name', 'ajax');
		ajax.setAttribute('value', 1);
		this.appendChild(ajax);
	}
*/


	
	$("form.form_group_join").ajaxForm(joinoptions);
	$("form.form_group_leave").ajaxForm(leaveoptions);
	
	$("form.form_group_join").each(addAjaxHidden);
	$("form.form_group_leave").each(addAjaxHidden);
//LN_End
	$("#form_user_nudge").ajaxForm ({ dataType: 'xml',
		beforeSubmit: function(xml) { $("#form_user_nudge input[type=submit]").attr("disabled", "disabled");
									  $("#form_user_nudge input[type=submit]").addClass("disabled");
									},
		success: function(xml) { $("#form_user_nudge").replaceWith(document._importNode($("#nudge_response", xml).get(0),true));
							     $("#form_user_nudge input[type=submit]").removeAttr("disabled");
							     $("#form_user_nudge input[type=submit]").removeClass("disabled");
							   }
	 });
	$("#form_user_nudge").each(addAjaxHidden);

	var Subscribe = { dataType: 'xml',
					  beforeSubmit: function(formData, jqForm, options) { 					  		
					  	$(".form_user_subscribe input[type=submit]").attr("disabled", "disabled");
																	      $(".form_user_subscribe input[type=submit]").addClass("disabled");
																	    },
					  success: function(xml) { 
					  							//LN_Begin
					  							/*
					  						  	if ($("#error", xml).length > 0 || $("#command_result", xml).length > 0) {
													var result = document._importNode($("p", xml).get(0), true);
													result = result.textContent || result.innerHTML;
													alert(result);
													$(".form_user_subscribe input[type=submit]").removeAttr("disabled");
            									    $(".form_user_subscribe input[type=submit]").removeClass("disabled");
												}else {
											    */
					  							var node = $("p", xml).get(0);
					    						
					   							if (node && (node.getAttribute('id') == 'error' || node.getAttribute('id') == 'command_result')){					   					   
						   							var result = node.text;
						   							if(!result || result.length<0){
						   			 					result = node.textContent || node.innerHTML;
						   	    					}
						   	    					alert(result);
						   	  						$(".form_user_subscribe input[type=submit]").removeAttr("disabled");
            									    $(".form_user_subscribe input[type=submit]").removeClass("disabled");
					   							}else {	
					   							//LN_End
					   							
												//LN_Begin												 
												 if ($("#showsggroup").length>0){												 	
												 	location.reload();
												 	return;
												 }
												 //LN_End	
						                       var form_unsubscribe = document._importNode($('form', xml).get(0), true);
										  	   var form_unsubscribe_id = form_unsubscribe.id;
											   var form_subscribe_id = form_unsubscribe_id.replace('unsubscribe', 'subscribe');
											   $("form#"+form_subscribe_id).replaceWith(form_unsubscribe);
											   $("form#"+form_unsubscribe_id).ajaxForm(UnSubscribe).each(addAjaxHidden);
											   $("dd.subscribers").text(parseInt($("dd.subscribers").text())+1);
											   $(".form_user_subscribe input[type=submit]").removeAttr("disabled");
											   $(".form_user_subscribe input[type=submit]").removeClass("disabled");
											   
											   //TP
											    var group_description_id = form_unsubscribe_id.replace('unsubscribe', 'group_description');
											     //$("#"+group_description_id).innerHTML='';
											     document.getElementById(group_description_id).innerHTML = " ";
											     
											   
											   
										     }
					                       }
					};

	var UnSubscribe = { dataType: 'xml',
						beforeSubmit: function(formData, jqForm, options) { $(".form_user_unsubscribe input[type=submit]").attr("disabled", "disabled");
																		    $(".form_user_unsubscribe input[type=submit]").addClass("disabled");
																		  },
					    success: function(xml) { 
					    					    //LN_Begin
					    						/*
					    						if ($("#error", xml).length > 0 || $("#command_result", xml).length > 0) {
													var result = document._importNode($("p", xml).get(0), true);
													result = result.textContent || result.innerHTML;
													alert(result);
													$(".form_user_unsubscribe input[type=submit]").removeAttr("disabled");
            									    $(".form_user_unsubscribe input[type=submit]").removeClass("disabled");
												}else {	
												*/					    							
					    						var node = $("p", xml).get(0);
					    						
					   							if (node && (node.getAttribute('id') == 'error' || node.getAttribute('id') == 'command_result')){					   					   
						   							var result = node.text;
						   							if(!result || result.length<0){
						   			 					result = node.textContent || node.innerHTML;
						   	    					}
						   	    					alert(result);
						   	  						$(".form_user_unsubscribe input[type=submit]").removeAttr("disabled");
	            									$(".form_user_unsubscribe input[type=submit]").removeClass("disabled");
					   							}else {	
					    						//LN_End											
					    	                     var form_subscribe = document._importNode($('form', xml).get(0), true);
										  		 var form_subscribe_id = form_subscribe.id;
												 var form_unsubscribe_id = form_subscribe_id.replace('subscribe', 'unsubscribe');
												 $("form#"+form_unsubscribe_id).replaceWith(form_subscribe);
												 $("form#"+form_subscribe_id).ajaxForm(Subscribe).each(addAjaxHidden);
												 $("#profile_send_a_new_message").remove();
												 $("#profile_nudge").remove();
											     $("dd.subscribers").text(parseInt($("dd.subscribers").text())-1);
												 $(".form_user_unsubscribe input[type=submit]").removeAttr("disabled");
												 $(".form_user_unsubscribe input[type=submit]").removeClass("disabled");
												 
												 //LN_Begin												 
												 if ($("#showsggroup #notices_primary").length>0){												 	
												 	$("#showsggroup #notices_primary").hide();
												 	$("#notice_filter").hide();
												 	$("#update_status").hide();
												 }
												 //LN_End
											   }
	                                      }  
					  };

	$(".form_user_subscribe").ajaxForm(Subscribe);
	$(".form_user_unsubscribe").ajaxForm(UnSubscribe);
	$(".form_user_subscribe").each(addAjaxHidden);
	$(".form_user_unsubscribe").each(addAjaxHidden);

	var PostNotice = { dataType: 'xml',
					   beforeSubmit: function(formData, jqForm, options) { if ($("#notice_data-text").get(0).value.length == 0) {
																				$("#form_notice").addClass("warning");
																				return false;
																		   }
																		   $("#notice_action-submit").attr("disabled", "disabled");
																		   $("#notice_action-submit").addClass("disabled");
																		   
																		   //Begin
																		   clearInterval(mTimer);																	   																	   
																		   //End
																		   return true;
												 						 },
					   success: function(xml) {	
					   	/*
					   	if ($("#error", xml).length > 0 || $("#command_result", xml).length > 0) {
													var result = document._importNode($("p", xml).get(0), true);
													result = result.textContent || result.innerHTML;
													alert(result);
					    }
						*/
					   	var node = $("p", xml).get(0);			
					   	//check error		   	
					   	if (node.getAttribute('id') == 'error' || node.getAttribute('id') == 'command_result'){
					   	//Begin	
					   		//alert(node.text);					   
					   		var result = node.text;
					   		if(!result || result.length<0){
					   			 result = node.textContent || node.innerHTML;
					   	    }
					   	    alert(result);
					   	//End    
					   	}
								//Begin					
												else if (node.getAttribute('id') == 'reload'){ 		
                                                    //This for embed qualifier
													window.location.reload();
												   
												}else if (node.getAttribute('id') == 'redirect'){ 		
                                                    //This for inbox message
													var result = document._importNode($("p", xml).get(0), true);
												   result = result.textContent || result.innerHTML;
												   window.location = result;
						        //End 						   
												}
												else {
													$("#notices_primary .notices").prepend(document._importNode($("li", xml).get(0), true));
											//Begin		
													$("#notices_primary_reply .notices").append(document._importNode($("li", xml).get(0), true));
													
										    	    if ($("#inreplyto").get(0)==null || $("#inreplyto").get(0).value.length == 0) {
													   $("#notice_data-text").val("");
										    	    }else{
										    	    	var reply_nick= $('#notices_primary_tmp .author .nickname').text();
										    	    	ReplySet(reply_nick);
										    	    }
												
										    	// $("#notice_data-text").val("");
										    	$("#notice_data-text").focus();
										    //End	
										    		counter();
													$("#notices_primary .notice:first").css({display:"none"});
													$("#notices_primary .notice:first").fadeIn(2500);
													NoticeActive();
													
													
													//Begin
													if (t8mlet){  
														window.close();
														if (window.opener.saigonica_badge)
															//window.opener.location.reload();
															window.opener.test();
													}
													//End
												}
												$("#notice_action-submit").removeAttr("disabled");
												$("#notice_action-submit").removeClass("disabled");
												
												//Begin
												var node = $("li", xml).get(0);
												
		        								lastNotice = node.getAttribute('id').substr(7);
		        								if (lastNotice.length && lastNotice.substr(0,1) == '-') lastNotice = lastNotice.substr(1);//if notice is message
		        								
		        								if ($("#update_status").length){ 
    												if ($("#update_status div")[0].id == 'update_status_auto'){
    												autoUpdateNotice();
    												}
		        								}
												//End
											 }
											 
											
					   };
	$("#form_notice").ajaxForm(PostNotice);
	$("#form_notice").each(addAjaxHidden);

    NoticeActive();
    //NoticeReply();
    
    
    // DungNP Collapse/Uncollapse in Connection Settings

			
				$("#a_facebook_collap").click(
						function() {
							if ($(".facebook_setting_content").attr("style")
									.toLowerCase().indexOf("none") != -1) {
								$(".facebook_setting_content").show();
								$("#a_facebook_collap").attr("class",
										"title_collap_up");
								// $("#d_twitter_collap").attr("style","display:block;");

							} else {
								$("#a_facebook_collap").attr("class",
										"title_collap_nor");
								// $("#d_twitter_collap").attr("style","display:none;");
								$(".facebook_setting_content").hide();
							}
						});

				

				// Hongdtt - connectionsetting
				
				var error4 = $(".facebook_setting_content").find(
						'#order_connection4');

				if (error4.html() != null) {
					$("#a_facebook_collap").attr("class", "title_collap_up");
					$(".facebook_setting_content").show();
				}
    
    
    /********TP_Begin*/
  
					    	
    var Shorturl = { dataType: 'xml',
                     beforeSubmit: function(formData, jqForm, options) {
                     	var spansay   = $("#spansay");
                     	var spanclass=spansay.attr("class");
                     	var content=$("#notice_data-text").val();
                     	if(spanclass=='q_music' || spanclass=='q_embed' || content.length == 0) return false;
                     	//var content=$("#notice_data-text").val();
						$("#notice_content").val(content);
						},
					 success: function(xml) { 
    	                 	var node = $("p", xml).get(0);			
					   		if (node.getAttribute('id') == 'error'){
						   		var result = node.text;
							   	if(!result || result.length<0){
							   		 result = node.textContent || node.innerHTML;
							   	}
							   	alert(result);
						   	} else if (node.getAttribute('id') == 'sucess'){
						   		var result = node.text;
							   	if(!result || result.length<0){
							   		 result = node.textContent || node.innerHTML;
							   	}
						   	
								$("#notice_data-text").val(result);
								$("#notice_data-text").focus();
								counter();
						   }
							
					  }
					 };
    $("form.form_shorturl").ajaxForm(Shorturl);
	$("form.form_shorturl").each(addAjaxHidden);
	
	$("#btnembed").click( function() {
		
		var content=$("#notice_data-text").val();
	    $("#notice_content").val(content);
	   $("form.form_shorturl").submit();
	   //alert("aaaaaa");
		//$("#form_notice").submit();
	});

    $("#foldershow").click( function() {
    	if($("#personalnavview").css("display") != "block"){
        	$("#personalnavview").css({display:"block"});        	
        	document.getElementById('foldershow').innerHTML = " Hide";
        	
    	}else{
    		$("#personalnavview").css({display:"none"});    		
    		document.getElementById('foldershow').innerHTML = " Show all ...";
    	}
    	
	});
	
	function ReplySet(nick) {
		rgx_username = /^[0-9a-zA-Z\-_.]*$/;
		if (nick.match(rgx_username)) {
			replyto = "@" + nick + " ";
			if ($("#notice_data-text").length) {
				$("#notice_data-text").val(replyto);
				
			}
		}
	}
	
    /*******TP_End*/
    
});
/*LN_Begin
function NoticeHover() {
    $("#content .notice").hover(
        function () {
            $(this).addClass('hover');
        },
        function () {
            $(this).removeClass('hover');
        }
    );
}

function NoticeReply() {
    if ($('#notice_data-text').length > 0) {
        $('#content .notice').each(function() {
            var notice = $(this);
            $('.notice_reply', $(this)).click(function() {
                var nickname = ($('.author .nickname', notice).length > 0) ? $('.author .nickname', notice) : $('.author .nickname');
                NoticeReplySet(nickname.text(), $('.notice_id', notice).text());
                return false;
            });
        });
    }
}

function NoticeReplySet(nick,id) {
	rgx_username = /^[0-9a-zA-Z\-_.]*$/;
	if (nick.match(rgx_username)) {
		replyto = "@" + nick + " ";
		if ($("#notice_data-text").length) {
			$("#notice_data-text").val(replyto);
			$("#form_notice input#notice_in-reply-to").val(id);
			$("#notice_data-text").focus();
			return false;
		}
	}
	return true;
}
LN_End*/