/*!
 * PHPWind PAGE JS
 * @Copyright Copyright 2011, phpwind.com
 * @Descript: 前台-阅读页_常用交互
 * @Author	: linhao87@gmail.com, TID
 * @Depend	: jquery.js(1.7 or later), global.js
 * $Id$
 */

//阅读回复
(function(){




	Wind.use('localStorage',function() {
		Wind.Util.LocalStorage.remove('quickReply');
	});

	//图片附件显示 删除
	$('span.J_attach_img_wrap').hover(function(){
		var $this = $(this);
		$this.find('.J_img_info').show().css({
			left : $this.offset().left,
			top : $this.find('img.J_post_img').offset().top
		});
	}, function(){
		$(this).find('.J_img_info').hide();
	});

	$('a.J_read_img_del').on('click', function(e){
		e.preventDefault();
		var $this = $(this);


		//glbal.js
		Wind.Util.ajaxConfirm({
			href : this.href,
			elem : $this,
			callback : function(){
				$this.parents('.J_attach_img_wrap').fadeOut(function(){
					$(this).remove();
				});
			}
		});
	});



   //二级回复自动展开，ajax获取内容
  //  var  replynum  =  $('.J_read_reply span span');
  //  replynum.each(function(e){
  //  if(parseInt($(this).html())>0){

		// var $this = $(this).parent().parent('.J_read_reply'),
		// 	pid = $this.data('pid'),
		// 	topped = $this.data('topped'),
		// 	wrap = $('#J_reply_wrap_'+ pid + (topped ? '_topped' : ''));			//列表容器
         
		// wrap.slideDown();
		// $this.toggle();
		// $this.next('.lzl_link_fold').toggle();

		// $.post($this.data('url'), function(data){
		// 	if(Wind.Util.ajaxTempError(data))	{
		// 		return false;
		// 	}
		// 	wrap.html(data);
		// 	$this.data('load', true); //已请求标识
		// 	Wind.Util.avatarError(wrap.find('img.J_avatar'));
		// 	replyFn(wrap);
		// 	//ie6初次展开不聚焦
		// 	wrap.find('textarea').focus();
		// });

  //  }
  //  });  


  //二级回复初始化,不是通过ajax获取内容
   var  replynum  =  $('.J_read_reply span span');
   replynum.each(function(e){
   if(parseInt($(this).html())>0){

		var $this = $(this).parent().parent('.J_read_reply'),
			pid = $this.data('pid'),
			topped = $this.data('topped'),
			wrap = $('#J_reply_wrap_'+ pid + (topped ? '_topped' : ''));			//列表容器变量
         

			$this.data('load', true); //已请求标识
			Wind.Util.avatarError(wrap.find('img.J_avatar'));
			replyFn(wrap);
			//ie6初次展开不聚焦
			wrap.find('textarea').focus();

   }
   });  


	//本地存储快速回复
	function quickStorage($ele){
		Wind.use('localStorage',function() {
			var set = function() { 
				//不支持placeholder容错处理
				var val = $ele.val();
				if(document.createElement('input').placeholder !== ''){
					if(val === $ele.attr("placeholder")){
						return;
					}
				}
				
				Wind.Util.LocalStorage.set('quickReply',val);
			};
			if($.browser.msie) {
				$ele[0].onpropertychange = function(event) {
				    set();
				}
			}else {
				$ele.on('input',set);
			}
		});
	}

	//主楼快速回复
	var reply_quick_ta = $('#J_reply_quick_ta'),
		reply_quick_btn = $('#J_reply_quick_btn'),
		reply_ft = $('#J_reply_ft'),
		floor_reply = $('#floor_reply'); //回复层

	Wind.Util.buttonStatus(reply_quick_ta, reply_quick_btn);
	Wind.Util.ctrlEnterSub(reply_quick_ta, reply_quick_btn);

	//主楼回复
	$('.j_quick_reply,#J_readreply_main').on('click', function(e){
		e.preventDefault();
		location.hash = $(this).data('hash');
        $(document).scrollTop(floor_reply.offset().top)
		$('#J_reply_quick_ta').focus();
	});

	//回复框聚焦
	reply_quick_ta.on('focus', function() {
		//需要记录用户的输入，点击进入高级模式时需要
		quickStorage(reply_quick_ta);
	});
	
	//楼层快速回复框自动保存数据
	$(document).on('focus', '.J_at_user_textarea', function(){
		quickStorage($(this));
	})
	
	

	// form 方式提交主题帖回复
	$('#fastReplyForm').on('submit', function(e){
    e.preventDefault(); 
	if(Wind.Util.LocalStorage && Wind.Util.LocalStorage.get('quickReply') !== null){
		Wind.Util.LocalStorage.remove('quickReply');
	}
	//end
	var $this = reply_quick_btn;
	//global.js
	Wind.Util.ajaxBtnDisable($this);

    		$('#fastReplyForm').ajaxSubmit({
    		dataType : 'html',
    		beforeSerialize:function() {
	 			//同步编辑器的内容到textarea中
	 			//!TODO:编辑器组件里自动同步
	 			//content_editor.data('windeditor').saveContent();
	 		},
	 		success : function(data, statusText, xhr, $form) {

	 		Wind.Util.ajaxBtnEnable($this, 'disabled');
			if (Wind.Util.ajaxTempError(data, $this)) {
				if(data.indexOf('审核') > 0) {
					reply_quick_ta.val('');
					$('#J_emotions_pop').hide();
				}
				return false;
			}

			if($('#J_need_reply').length) {
				//回复可见
				Wind.Util.reloadPage(window);
			}

			reply_quick_ta.val('');
			floor_reply.before(data);
			$('#J_emotions_pop').hide();
			//高亮代码start
			var highlightFunc = function(){
				var nextFloor = floor_reply.prevAll('.J_read_floor').eq(0);
				var codes = $('pre[data-role="code"]', nextFloor);
				if(codes.length) {
					codes.each(function(){
						//console.log(this)
						HighLightFloor.addCopy(this);
					});
					HighLightFloor.render();
					$(".syntaxhighlighter").each(function(){
						HighLightFloor.adjust(this);
					});
				}
			};
			var nextFloor = floor_reply.prevAll('.J_read_floor').eq(0);
			//保证当HighLightFloor存在的时候才会渲染，防止当文件变更等原因导致报错
			if(typeof HighLightFloor !== 'undefined'){
				if(HighLightFloor.active === true){
					highlightFunc();
				}else{
					HighLightFloor.init(highlightFunc);
				}
			}
			//高亮end
			
			var new_floor = floor_reply.prev();
			
			//头像
			Wind.Util.avatarError(new_floor.find('img.J_avatar'));

			//积分提示
			Wind.Util.creditReward();
			location.hash = new_floor.attr('id');
             
	 		}
		});

	})



	//查看回复
	var lock = false,
		posts_list = $('#J_posts_list');

	posts_list.on('click', '.J_read_reply', function(e){
		e.preventDefault();
		var $this = $(this),
			pid = $this.data('pid'),
			topped = $this.data('topped'),
			wrap = $('#J_reply_wrap_'+ pid + (topped ? '_topped' : ''));			//列表容器
         
		wrap.slideDown();
		$this.toggle();
		$this.next('.lzl_link_fold').toggle();


		// 锁定 或 已请求
		if(lock || $this.data('load')) {
			wrap.find('.J_at_user_textarea').val('').focus();
			return false;
		}
		lock = true;

		$.post($this.data('url'), function(data){
			//global.js
			lock = false;
			if(Wind.Util.ajaxTempError(data))	{
				return false;
			}

			wrap.html(data);
			$this.data('load', true); //已请求标识

			replyFn(wrap);

			//ie6初次展开不聚焦
			wrap.find('textarea').focus();

			Wind.Util.avatarError(wrap.find('img.J_avatar'));
			
		});
	});
     

	
	posts_list.on('click','.lzl_link_fold',function(e){   //我来说一句展开
    var $this = $(this),
	pid = $this.data('pid'),
	topped = $this.data('topped'),
	wrap = $('#J_reply_wrap_'+ pid + (topped ? '_topped' : ''));
	wrap.slideUp(function(){
	$this.toggle();
	$this.prev('.a_reply').toggle();
	});
		
	})

	posts_list.on('click', '.J_ajax a.J_insert_emotions' ,function(e){    //插入表情，为了兼容ajax获取的回复框
		e.preventDefault();
		var $this = $(this);
		Wind.js(GV.JS_ROOT +'pages/common/insertEmotions.js?v='+ GV.JS_VERSION, function(){
			insertEmotions($this, $($this.data('emotiontarget')));
		});
	}).on('click', 'a.J_read_reply_single' ,function(e){
		//回复单个
		e.preventDefault();
		//var wrap = $(this).parents('div.J_reply_wrap'),
		var wrap = $(this).parents('.J_reply_wrap'),
				username = $(this).data('username'),
				npid = $(this).data('npid'),
				textarea = wrap.find('textarea');

				wrap.find('.reply_quick').css('display','block');
				wrap.find('button.J_reply_sub').attr('data-npid',npid);


			textarea.focus().val('回复 '+ username +' ：');
			if(!$.browser.msie) {
				//chrome 光标定位最后
				textarea[0].setSelectionRange(100,100);
			}
	}).on('click', 'button.J_reply_sub' ,function(e){
		//提交
		e.preventDefault();
		var $this = $(this),
			pid = $this.data('pid'),
			npid = $this.data('npid'),
			par = $this.parents('.J_reply_wrap'),
			textarea = par.find('textarea'),
			list = par.find('.J_reply_page_list ul');

		//global.js
		Wind.Util.ajaxBtnDisable($this);

		$.post($(this).data('action'), {
			atc_content : textarea.val(),
			tid : TID,
			pid : pid,
			npid : npid 
		}, function(data){
			//global.js
			Wind.Util.ajaxBtnEnable($this, 'disabled');

			if(Wind.Util.ajaxTempError(data)) {
				/*textarea.val('');
				$this.addClass('disabled').prop('disabled', true);
				$('#J_emotions_pop').hide();*/
				if(data.indexOf('审核') > 0) {
					textarea.val('');
					$('#J_emotions_pop').hide();
				}
				return false;
			}

			if($('#J_need_reply').length) {
				//回复可见
				location.reload();
			}

			list.append(data);
			textarea.val('');
			$('#J_emotions_pop').hide();

			//积分奖励
			Wind.Util.creditReward();
			
		});
	}).on('click', 'div.J_pages_wrap a' ,function(e){
		//翻页
		e.preventDefault();
		var list = $(this).parents('.J_reply_page_list'),
				clone = list.clone();
		var hashwrap = $(this).parents('.J_reply_wrap');
		var hashwrap_ot = hashwrap.offset().top;


		//跳楼
		
		list.html('<div class="pop_loading"></div>');

		$.post(this.href, function(data){
			if(Wind.Util.ajaxTempError(data)) {
				//失败则恢复原内容
				list.html(clone.html());
				return false;
			}

			list.html(data);
			  //定位到包裹上方
	  // location.hash = hashwrap.attr('id');
	  $(document).scrollTop(hashwrap_ot - 100);
		})

	});

	//我来说一句
	posts_list.on('click','.woshuoyiju',function(e){
    var $this = $(this);
    $this.parents('.reply_list').find('.reply_quick').toggle().find('textarea').focus();

   
	});	



	//回复列表公共方法
	function replyFn(wrap){
		var btn = wrap.find('button.J_reply_sub'),
			ta = wrap.find('textarea');
		Wind.Util.buttonStatus(ta, btn);
		Wind.Util.ctrlEnterSub(ta, btn);
		ta.focus();
	}

})();

//大小图切换
(function() {
	var attach_pics_list = $('div.read_attach_pic'),
		$doc = $(document);
	if( attach_pics_list.length ) {
		attach_pics_list.each(function() {
			var container = $(this);
			$(this).find('a.J_small_images').on('click',function(e) {
				e.preventDefault();
				$(this).removeClass('current');
				container.find('a.J_big_images').addClass('current');
				container.find('ul.big_img').hide();
				container.find('ul.small_img').show();
			});
			$(this).find('a.J_big_images').on('click',function(e) {
				e.preventDefault();
				$(this).removeClass('current');
				container.find('a.J_small_images').addClass('current');
				container.find('ul.small_img').hide();
				container.find('ul.big_img').show();
				$doc.scrollTop($doc.scrollTop()+1);
			});
		});
	}
})();

//前台管理日志
(function(){
	var inside_logs = $('#J_inside_logs');
	if(inside_logs.length) {
		Wind.use('dialog', function(){
			
			inside_logs.on('click', function(e){
				e.preventDefault();
				Wind.Util.ajaxMaskShow();
				
				$.post(this.href, function(data){
					Wind.Util.ajaxMaskRemove();
					if(Wind.Util.ajaxTempError(data, inside_logs)) {
						return;
					}

					Wind.dialog.html(data, {
						id : 'read_log',
						title : '帖子操作记录',
						isMask : false,
						isDrag : false,
						callback : function(){
							$('#J_log_close').on('click', function(e){
								e.preventDefault();
								Wind.dialog.closeAll();
							});
						}
					});
				});

			});
			
		});
	}
})();