/**
 * 添加或修改知识库
 * */

var proimglist = []; //保存附件数组
var uploader; //上传实例
var limitNum = 6; //限制数量
var edit_id = helper.request.queryString("edit_id");
var token = $.cookie("token");

$(function() {
	autosize($('textarea'));
	getChangeTree();
	if(edit_id) {
		getDetail();
	} else {
		$('#kn_type').val('顶级分类');
		$('#kn_type').attr('data-id', 0)
		uploaderImages();
	}
	//初始化 下拉
	$('.inps1').focus(function() {
		$('.xlAdd').css('display', 'block');
	});
	$('.xl_one').click(function() {
		if($('.xlAdd').css('display') == 'block') {
			$('.xlAdd').css('display', 'none')
		} else {
			$('.xlAdd').css('display', 'block')
		}
	});
	$('.addTree').mouseleave(function() {
		$(this).css('display', 'none')
	});
	
	$('#save_knowledge').on('click', saveKnowledge);
});



//修改弹出框内 下拉树形图参数配置项
function getChangeTree() {
	var setting3 = {
		data: {
			key: {
				name: "text"
			},
			simpleData: {
				enable: true,
				idKey: "id",
				rootPId: 0
			}
		},
		callback: {
			onClick: changeTreeClick
		}
	}
	$.get(huayi.config.callcenter_url + 'KnowledgeClass/GetList', {
//		"pid": pid,
		"token": token,
	}, function(result) {
		result = $.parseJSON(result);
		$.fn.zTree.init($("#addTreeDemo"), setting3, result.data); //实例化树形图
	});
}

function changeTreeClick(event, treeId, treeNode) {
	$('#kn_type').val(treeNode.text);
	$('#kn_type').attr('data-id', treeNode.id);
};

//获取详情
function getDetail() {
	var dtd = $.Deferred(); //在函数内部，新建一个Deferred对象
	$.ajax({
		type: "post",
		url: huayi.config.callcenter_url + "Knowledge/GetInfo",
		async: true,
		dataType: 'json',
		data: {
			infoid: edit_id,
			token: token
		},
		success: function(data) {
			var con = data.data;
			$('#kn_title').val(con.F_Title);
			$('#kn_key').val(con.F_KeyWords);
			$('#kn_content').val(con.F_Description);
			$('#kn_type').val(con.F_Expand1);
			$('#kn_type').attr('data-id', con.F_CategoryId);

			//附件
			var proimglists = con.FileUrls;
			proimglists = proimglists == null ? [] : proimglists;
			limitNum -= proimglists.length;
			uploaderImages(); //附件上传
			if(proimglists.length > 0) {
				$('#fileNum').text(proimglists.length);
				var $list = $("#fileList");
				$.each(proimglists, function(i, v) {
					proimglist.push(v.F_FileId);
					if(v.F_FileType.split("\/")[0] === 'image') {
						//原来的图片
						var $li = $(
							'<li><span class="img_mask"><i class="img_del"></i></span>' +
							'<img src="' + v.F_FileUrl + '" title="原来的图片"/>' +
							'<span class="file_name">' + v.F_FileName + '</span>' +
							'</li>'
						);
						$list.append($li);
					} else {
						var $liFile = $(
							'<li><span class="img_mask"><i class="img_del"></i></span>' +
							'<div class="noThumb" title="原来的文件"><i class="glyphicon glyphicon-paperclip"></i><p>无法预览</p></div>' +
							'<span class="file_name">' + v.F_FileName + '</span>' +
							'</li>'
						);
						$list.append($liFile);
					}
				});
				$list.find('li').off('click');
				$list.find('li').on('click', '.img_del', function() {
					$(this).parent().parent().remove();
					var itemFileName = $(this).parent().parent().find('.file_name').text();
					$.each(proimglists, function(i, v) {
						if(v && v.F_FileName == itemFileName) {
							proimglist.splice(i, 1);
						}
					});
					$('#fileNum').text(proimglist.length);
					limitNum = 6 - proimglist.length;
					uploaderImages();
				});
			}
			dtd.resolve(); // 改变Deferred对象的执行状态
		}
	});
	return dtd.promise(); // 返回promise对象
}

//保存
function saveKnowledge() {
	var wUrl;
	
	if(!$.trim($('#kn_type').val())) {
		layer.confirm('所属分类不能为空', {
			icon: 2,
			btn: ['确定'] //按钮
		});
		return;
	}
	
	if(!$.trim($('#kn_title').val())) {
		layer.confirm('标题不能为空', {
			icon: 2,
			btn: ['确定'] //按钮
		});
		return;
	}
	
	if(edit_id) {
		wURL = "Knowledge/EditInfo";
	} else {
		wURL = "Knowledge/AddInfo";
	}
	$.ajax({
		type: "post",
		url: huayi.config.callcenter_url + wURL,
		dataType: 'json',
		async: true,
		beforeSend: function() { //触发ajax请求开始时执行
			$('#save_knowledge').attr("disabled", true);
			$('#save_knowledge').text('保存中...');
			$(document).off('click', '#save_knowledge', saveKnowledge);
			loadIndex = layer.load();
		},
		data: {
			infoid: edit_id,
			title: $('#kn_title').val(),
			key: $('#kn_key').val(),
			con: helper.filter.delHtmlTag($('#kn_content').val()),
			pid: $('#kn_type').attr('data-id'),
			fileids: proimglist && proimglist.join(','),
			token: token
		},
		success: function(result) {
			if(result.state.toLowerCase() === "success") {
				var index = parent.layer.getFrameIndex(window.name);
				parent.layer.close(index);
				parent.table.bootstrapTable('refresh');
				layer.msg("保存成功");
			}
		},
		error: function(textStatus) {
			layer.close(loadIndex);
			layer.confirm('网络繁忙，请稍后再试...', {
				icon: 7,
				closeBtn: 0,
				btn: ['确定'] //按钮
			});
			$('#save_knowledge').text('保存');
			$('#save_knowledge').attr("disabled", false);
			$(document).off('click', '#save_knowledge', saveKnowledge);
			$(document).on('click', '#save_knowledge', saveKnowledge);
		},
		complete: function(XMLHttpRequest, textStatus) {
			layer.close(loadIndex);
			if(textStatus == 'timeout') {
				var xmlhttp = window.XMLHttpRequest ? new window.XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHttp");
				xmlhttp.abort();
				layer.confirm('网络超时，请稍后再试...', {
					icon: 7,
					closeBtn: 0,
					btn: ['确定'] //按钮
				});　　　　
			}
			$('#save_knowledge').text('保存');
			$('#save_knowledge').attr("disabled", false);
			$(document).off('click', '#save_knowledge', saveKnowledge);
			$(document).on('click', '#save_knowledge', saveKnowledge);
		},
	});
}

//上传附件
function uploaderImages() {
	if(uploader) {
		uploader.destroy();
	}
	uploader = WebUploader.create({
		auto: true, // 选完文件后，是否自动上传 
		swf: '../../js/webuploader/Uploader.swf', // swf文件路径 
		server: huayi.config.callcenter_url + "Knowledge/UpLoadProcess", // 文件接收服务端 
		pick: '#imgPicker', // 选择文件的按钮。可选 
		formData: {
			token: token
		},
		// 只允许选择图片文件。 
		accept: {
			//			title: 'Images',
			//			extensions: 'gif,jpg,jpeg,bmp,png',
			//			mimeTypes: 'image/*'
		},
		compress: false, //webuploader默认压缩图片,设置compress:false，可以按照原始比例上传图片  
		//fileVal: "upFile",//设置文件上传域的name。  
		threads: limitNum, //上传并发数。允许同时最大上传进程数,为了保证文件上传顺序  
		fileNumLimit: limitNum,
		fileSizeLimit: 30 * 1024 * 1024, // 30 M
		fileSingleSizeLimit: 5 * 1024 * 1024 // 5 M
	});

	uploader.on('fileQueued', function(file) {
		var $list = $("#fileList"),
			$li = $(
				'<li id="' + file.id + '"><span class="img_mask"><i class="img_del"></i></span>' +
				'<img/>' +
				'<span class="img_state"><i></i></span>' +
				'<span class="file_name">' + file.name + '</span>' +
				'</li>'
			),
			$img = $li.find('img');

		// $list为容器jQuery实例 
		$list.append($li);

		// 保存缩略图 
		uploader.makeThumb(file, function(error, src) {
			if(error) {
				$img.replaceWith('<div class="noThumb"><i class="glyphicon glyphicon-paperclip"></i><p>无法预览</p></div>');
				return;
			}
			$img.attr('src', src);
		}, 109, 109); //109*109为缩略图尺寸 

		//绑定删除
		$('#' + file.id).on('click', '.img_del', function() {
			uploader.removeFile(file);
			var $fileLi = $('#' + file.id);
			$fileLi.off().find('.img_del').off().end().remove();
			var itemFileName = $(this).parent().parent().find('.file_name').text();
			$.each(proimglist, function(i, v) {
				if(v && v.filename == itemFileName) {
					proimglist.splice(i, 1);
					//helper.methods.delImgs(v.filesmallurl, v.fileurl);
				}
			});
			$('#fileNum').text(proimglist.length);
		});

	});

	// 文件上传过程中保存进度条实时显示。 
	uploader.on('uploadProgress', function(file, percentage) {
		var $li = $('#' + file.id),
			$percent = $li.find('.progress span');

		// 避免重复保存 
		if(!$percent.length) {
			$percent = $('<div class="progress" style="">' +
					'<span class="text">0%</span>' +
					'<span class="percentage"></span>' +
					'</div>')
				.appendTo($li)
				.find('span');
		}

		$percent.eq(0).text(Math.round(percentage * 100) + '%');
		$percent.eq(1).css('width', Math.round(percentage * 100) + '%');
	});

	// 文件上传成功，给item添加成功class, 用样式标记上传成功。 
	uploader.on('uploadSuccess', function(file, res) {
		proimglist.push(res.data.F_FileId);
		$('#fileNum').text(proimglist.length);
		$('#' + file.id).addClass('upload-state-done');
	});

	// 文件上传失败，显示上传出错。 
	uploader.on('uploadError', function(file) {
		var $li = $('#' + file.id),
			$error = $li.find('div.error');

		// 避免重复创建
		if(!$error.length) {
			$error = $('<div class="error"></div>').appendTo($li);
		}

		$error.text('上传失败');
	});

	// 完成上传完了，成功或者失败，先删除进度条。 
	uploader.on('uploadComplete', function(file) {
		$('#' + file.id).find('.progress').remove();
	});

	uploader.onError = function(code) {
		//		console.log('Error：' + code);
		switch(code) {
			case "Q_EXCEED_NUM_LIMIT":
				layer.msg('只能上传六个文件。');
				break;
			case "Q_TYPE_DENIED":
				layer.msg('文件类型不正确。');
				break;
			case "F_DUPLICATE":
				layer.msg('该文件已上传，请选择其它文件。');
				break;
			case "F_EXCEED_SIZE":
				layer.msg('单文件大小不能超过5M。');
				break;
			case "Q_EXCEED_SIZE_LIMIT":
				layer.msg('总文件大小不能超过30M。');
				break;
			default:
				break;
		}

	};
}