/**
 * 1084	1041
 * 所用到的值都放在a元素中，data形式
 * 
 *	实体参考:
 *	var menu = new Object();
 *	menu.menu_id = 0;
 *	menu.menu_name = DEFAULT_MENU_NAME;
 *	menu.pid = 0;
 *	menu.menu_event_type = 1;
 *	menu.menu_event_url = "";
 *	menu.media_id = 0;
 *	menu.sort = currentIndex;
 */

var MAX_MENU_LENGTH = 3;//一级菜单数量
var MAX_SUB_MENU_LENGTH = 5;//二级菜单数量

var DEFAULT_MENU_NAME = "菜单名称";//默认以及菜单名称（4个汉字，8个字母）
var DEFAULT_SUB_MENU_NAME = "子菜单名称";//默认二级菜单名称（字数不超过8个汉字或16个字母）

var DEFAULT_MENU_TIP = "字数不超过4个汉字或8个字母";//一级菜单名称验证提示
var DEFAULT_SUB_MENU_TIP = "字数不超过8个汉字或16个字母";//二级菜单名称验证提示

var IS_OK = true;//是否可以保存，验证菜单名称和网址输入是否正确

$(function() {

	/**
	 * “你尚未添加任何菜单”
	 * 初次添加微信自定义菜单按钮
	 * 2017年3月31日 10:46:41
	 */
	$(".js_openMenu").click(function() {
		
		$(".js_startMenuBox").hide();//隐藏初始化界面（“你尚未添加任何菜单”）
		$(".js_editBox").show();//编辑菜单窗口显示
		$("#js_rightBox").hide();//第一次还没有菜单，需要隐藏右侧编辑信息
		$("#menuList").addClass("no_menu");//第一次加载，显示“+添加菜单”
		
	});

	/**
	 * 一级菜单添加
	 * 1、每次添加都会有默认值，并且选中当前添加的一级菜单
	 * 2、根据菜单数量动态调整宽度
	 * 3、手机预览对应的也要进行变化
	 * 4、一个菜单以上菜单排序可用
	 * 5、显示底部保存按钮
	 * 2017年3月31日 11:09:36
	 */
	$(".js-addMenuBtn").live("click",function() {

		//删除操作后会显示这个，点击一级菜单添加按钮要隐藏这个“点击左侧菜单进行编辑操作”
		$("#js_none").hide();

		$(".jsMenu").parent().removeClass("current");
		$(".jsSubMenuInner").removeClass("current");
		
		// 没有菜单的情况
		if($("#menuList").hasClass("no_menu")){
			$("#menuList").removeClass("no_menu");
		}
		
		// 没有菜单的情况下，右侧默认是隐藏，显示右侧编辑菜单，只执行一次
		if($("#js_rightBox").is(":hidden")){
			$("#js_rightBox").show();
			$(".js_editBtn").css("visibility","visible");//底部保存按钮
			$(".sort_btn_wrp").show();//显示排序按钮
		}
		
		var menuList = $("#menuList li a[class*='jsMenu']");//菜单集合
		var menuLength = menuList.length;
		var currClassIndex = menuList.length+2;//开始样式为2，【 2 3】，当前样式索引位置，从2开始，索引需要加2
		var classCurrent = "current";//一级菜单选择样式
		var currentIndex = 0;//当前菜单索引位置
		
		//菜单个数大于1个才能进行排序（下边会进行添加）
		if(menuLength>0){
			$("#orderBt").removeClass("dn");
			$("#orderDis").addClass("dn");
		}
		
		//不能用超过菜单数量的样式（例如：当前菜单数量为3，不能用3以后的样式【4、5、6】）
		if(currClassIndex > MAX_MENU_LENGTH){
			currClassIndex = MAX_MENU_LENGTH;
			currentIndex = currClassIndex;
		}else{
			currentIndex = currClassIndex -1;
		}
		
		//清除选中样式，设置宽度
		if(menuList.parent().hasClass("size1of"+currentIndex)){
			menuList.parent().removeClass("size1of"+currentIndex);
			menuList.parent().removeClass(classCurrent);
			menuList.parent().addClass("size1of"+currClassIndex);
			$("div[data-submenulist]").hide();
		}
		
		var html = "";//菜单
		html += '<li class="pre_menu_item size1of'+currClassIndex+' '+classCurrent+'" data-menu-index="'+currentIndex+'">';
		html += '<a href="javascript:void(0);" ondragstart="return false" class="pre_menu_link jsMenu" data-menuid="-1" data-pid="0" data-menu-eventurl="" data-menu-type="1" data-detault-menu-type="1" data-mediaid="0" data-sort="'+currentIndex+'" data-appid="" data-pagepath="">';
		html += '<span>' + DEFAULT_MENU_NAME + '</span></a>';
		html += '<div class="sub_pre_menu_box" data-subMenuList="'+currentIndex+'">';
		html += '<ul class="sub_pre_menu_list">';
		html += '<li class="jsSubMenu" data-pid="0" data-subIndex="'+currentIndex+'">';
		html += '<a href="javascript:void(0);" title="最多添加'+MAX_SUB_MENU_LENGTH+'个子菜单">';
		html += '<span class="sub_pre_menu_inner">';
		html += '<i class="icon14_menu_add" style="background-position: 0 0;"></i></span></a></li>';
		html += '</ul><i class="arrow arrow_out"></i> <i class="arrow arrow_in" ></i></div>';
		html += '</li>';
		
		//在“加号”按钮前添加菜单代码
		$(this).before(html);
		
		//限制一级菜单添加
		if($("#menuList li a[class*='jsMenu']").length == MAX_MENU_LENGTH){
			$(this).hide();
		}
		
		//更新“+”号按钮样式
		$(this).removeClass("size1of"+currentIndex);
		$(this).addClass("size1of"+currClassIndex);
		$(this).find("span").remove();//删除新增按钮 文本【第一次出现的】

		//手机预览
		var index = $("#viewList>li").length;
		$("#viewList>li").removeClass("size1of"+index);
		$("#viewList>li").addClass("size1of"+currClassIndex);
		
		var mobileHtml = "";//手机预览
		mobileHtml += '<li class="pre_menu_item grid_item size1of'+currentIndex+'" data-mobile-menu-index="'+currClassIndex+'">';
		mobileHtml += '<a href="javascript:void(0);" class="jsView pre_menu_link" title="' +DEFAULT_MENU_NAME+ '">';
		mobileHtml += DEFAULT_MENU_NAME+ '</a>';
		mobileHtml += '<div class="sub_pre_menu_box jsSubViewDiv" data-subIndex="'+currentIndex+'" style="display: none">';
		mobileHtml += '<ul class="sub_pre_menu_list"></ul>';
		mobileHtml += '<i class="arrow arrow_out"></i><i class="arrow arrow_in"></i></div></li>';
		$("#viewList").append(mobileHtml);
		
		$("#smallProgramUrltext").val("");
		$("#urltext").val("");//每次添加都清空链接
		$("#appid").val("");//每次添加都清空链接
		$("#pagepath").val("");//每次添加都清空链接
		//第一次添加菜单都是默认值
		var menu = new Object();
		menu.menu_id = 0;
		menu.menu_name = DEFAULT_MENU_NAME;
		menu.pid = 0;
		menu.media_id = 0;
		menu.menu_event_type = 1;//默认是跳转链接
		menu.menu_event_url = "";
		menu.sort = currentIndex;

		addWeixinMenu(menu);//传入当前对象，更新添加后的菜单数据
		
	});
	

	/**
	 * 二级菜单
	 */
	$(".jsSubMenu").live("click",function(){
	
		var index = $(this).attr("data-subIndex");//当前
		$(".jsMenu").parent().removeClass("current");
		$(".jsSubMenuInner").removeClass("current");
		var sort = $(this).parent().find("li").length;
		var html = '<li class="current jsSubMenuInner"><a href="javascript:void(0);" data-pid="'+$(this).attr("data-pid")+'" data-menuid="-1" data-mediaid="0" data-menu-eventurl="" data-menu-type="1" data-detault-menu-type="1" data-sort="'+sort+'">';
		html += '<span class="sub_pre_menu_inner">';
		html += DEFAULT_SUB_MENU_NAME+'</span></a></li>';
		$(this).before(html);

		//有二级菜单，一级菜单则要添加一个小图标，标识有二级菜单列表
		if($("li[data-menu-index='"+index+"']>a").find("i").html() == undefined){
			$("li[data-menu-index='"+index+"']>a").find("span").before('<i class="icon_menu_dot js_icon_menu_dot dn"></i>');
		}
		
		//等于最大菜单长度隐藏 “+”
		if(($("div[data-subMenuList="+index+"] ul li").length-1) >= MAX_SUB_MENU_LENGTH){
			$(this).hide();
		}
		
		//手机预览
		var mobileHtml = '<li><a href="javascript:void(0);" data-pid="'+$(this).attr("data-pid")+'" data-menuid="-1" class="jsSubView" title="'+DEFAULT_SUB_MENU_NAME+'">'+DEFAULT_SUB_MENU_NAME+'</a></li>';
		var mobileObj = $("li[data-mobile-menu-index='"+index+"'] div ul");
		mobileObj.append(mobileHtml);
		if(!mobileObj.parent().prev().find("i").length){
			mobileObj.parent().prev().prepend('<i class="icon_menu_dot"></i>');
		}

		$("#smallProgramUrltext").val("");
		$("#urltext").val("");//每次添加都清空链接
		$("#appid").val("");//每次添加都清空小程序appid	
		$("#pagepath").val("");//每次添加都清空小程序页面链接

		//第一次添加都是默认值
		var menu = new Object();
		menu.menu_id = 0;
		menu.media_id = 0;
		menu.menu_name = DEFAULT_SUB_MENU_NAME;
		menu.pid = $(this).attr("data-pid");
		menu.menu_event_type = 1;
		menu.menu_event_url = "";
		menu.sort = sort;
		addWeixinMenu(menu);
		
	});
	
	/**
	 * 记录当前的值，用于判断是否发生过变化
	 */
	$("#urltext,#menuname").click(function(){
		if($(this).attr("data-flag") == 1){
			$(this).attr("data-default-value",$(this).val());
		}
		if($(this).attr("data-flag") == undefined ){
			$(this).attr("data-flag",1); 
		}
	});
	
	// 修改菜单名称
	$("#menuname").blur(function(){
		if(parseInt($(this).attr("data-flag")) == 1){
			var obj = getCurrentMenu();
			var isUpdate = true;//是否更新
			//没有变化，则做不修改操作
			if(obj.find("span").text() == $(this).val()){
				isUpdate = false;
			}
			if(isUpdate){
				modifyWeixinMenuName(obj.attr("data-menuid"), $(this).val());
			}
		}
	});
	
	// 修改网址
	$("#urltext,#smallProgramUrltext").blur(function(){
		if(parseInt($(this).attr("data-flag")) == 1 && $(this).val().length > 0){
			var obj = getCurrentMenu();
			var isUpdate = true;//是否更新
			//没有变化，则做不修改操作
			if(obj.attr("data-menu-eventurl") == $(this).val()){
				isUpdate = false;
			}
			if(isUpdate){
				modifyWeixinMenuUrl(obj.attr("data-menuid"),$(this).val());
			}
		}
	});


	$("#appid,#pagepath").blur(function(){
		var type = $(this).attr("id");
		var val = $(this).val();
		var obj = getCurrentMenu();
		if((type == 'appid' && obj.attr("data-appid") == val) || (type == 'pagepath' && obj.attr("data-pagepath") == val)){
			return;
		}
		$.ajax({
			url : __URL(ADMINMAIN + "/wchat/modifyMenuSmallProgramConfig"),
			type : "post",
			async : false,
			data : { "menu_id" : obj.attr("data-menuid"), "type" : type, "val" : val},
			success : function(res){
				if(res>0){
					var obj = getCurrentMenu();
					if(type == 'appid'){
						obj.attr("data-appid",val);
					}else if(type == 'pagepath'){
						obj.attr("data-pagepath",val);
					}
					showDialog("修改成功", 1);
				}else{
					showDialog("修改失败", 0);
				}
			}
		})
	});
	
	/**
	 * 点击一级菜单弹出二级菜单
	 * 隐藏其他二级菜单，显示当前点击的二级菜单
	 * 对应右侧的菜单编辑赋值
	 * 已添加子菜单，仅可设置菜单名称。
	 */
	$(".jsMenu").live("click",function(){
		menuClick(this);
	});
	
	/**
	 * 选择二级菜单
	 */
	$(".jsSubMenuInner").live("click",function(){
		subMenuClick(this);
	});
	
	/**
	 * 菜单名称验证
	 * 2017年3月16日 10:02:05
	 */
	$("#menuname").keyup(function(){
		var tips = DEFAULT_MENU_TIP;
		var flag = testMenu($(this).val(),"menu");
		if($(".js_titleNolTips").attr("data-selected") == "submenu"){
			tips = DEFAULT_SUB_MENU_TIP;
			flag = testMenu($(this).val(),"sub_menu");
		}
		if(!flag){
			$(".js_titleEorTips").text("名称不能为空或者字数超过上限");
			$(".js_titleEorTips").fadeIn(500);
			$(".js_titleEorTips").removeClass("dn");
			$(this).attr("data-flag","-1");//错误
			IS_OK = false;
		}else{
			$(".js_titleEorTips").fadeOut(500);
			$(".js_titleEorTips").addClass("dn");
			$(this).attr("data-flag","1");//正确
			IS_OK = true;
		}
	});
	
	/**
	 * 排序
	 */
	$("#orderBt").click(function(){
		var arr = new Array();
		$('#menuList>li[data-menu-index]').each(function(){
			arr.push($(this).find("a").attr("data-menuid"));
		});
		$("#hidden_default_sort").val(arr);//记录默认排序
		$(this).addClass("dn");
		$("#finishBt").removeClass("dn");//显示完成按钮
		$("#js_none").show();//请通过拖拽左边的菜单进行排序
		$("#js_rightBox").hide();//右侧编辑
		$(".js_editBtn").css("visibility","hidden");//底部保存按钮
		// 隐藏“+”号，并改变长度
		$(".js-addMenuBtn").hide();
		$("#menuList>li").removeClass("size1of"+$("#menuList>li").length);
		$("#menuList>li").addClass("size1of"+($("#menuList>li").length-1));
		$('#menuList>li').arrangeable();
		
		// 隐藏子菜单“+”号
		$(".sub_pre_menu_list li").arrangeable();
		$(".sub_pre_menu_list li[class='jsSubMenu']").hide();
		setSubMenuDisplay();
	});
	
	/**
	 * 没有子菜单，隐藏
	 */
	function setSubMenuDisplay(){
		var obj = $("#menuList li[class*='current'] .sub_pre_menu_list");
		if(obj.find("li[class*='jsSubMenuInner']").length == 0){
			obj.parent().hide();
		}
	}
	
	/**
	 * 完成排序
	 */
	$("#finishBt").click(function(){
		$(this).addClass("dn");
		$("#orderBt").removeClass("dn");//显示完成按钮
		$("#js_none").hide();//请通过拖拽左边的菜单进行排序
		$("#js_rightBox").show();//右侧编辑
		$(".js_editBtn").css("visibility","visible");//底部保存按钮
		$('#menuList>li').arrangeable("destroy");
		$(".sub_pre_menu_list li").arrangeable("destroy");
		var menu_id_arr = new Array();//一级菜单
		var sub_menu_id_arr = new Array();//二级菜单
		var tempCount = 0;
		var tempCountSub = 0;
		$('#menuList>li[data-menu-index]').each(function(){
			if(!$(this).hasClass("js-addMenuBtn")){
				tempCount++;
				menu_id_arr.push($(this).find("a").attr("data-menuid"));
				$(this).attr("data-menu-index",tempCount);
				$(this).find("a:eq(0)").attr("data-sort",tempCount);
			}
		});
		
		//二级菜单
		$("#menuList>li[class*='current'] .sub_pre_menu_list li[class*='jsSubMenuInner']").each(function(){
			tempCountSub++;
			var obj = $(this).find("a");
			obj.attr("data-sort",tempCountSub);
			sub_menu_id_arr.push(obj.attr("data-menuid"));
		});
		var default_arr = $("#hidden_default_sort").val().split(",");
		var default_sub_arr = $("#hidden_default_sub_sort").val().split(",");
		/**
		 * 重新排序
		 */
		// 隐藏一级菜单的“+”号，并改变长度
		var index = $("#menuList>li").length;
		if($("#menuList>li").length > MAX_MENU_LENGTH){
			index = MAX_MENU_LENGTH;
		}
		if(($("#menuList>li").length-1) < MAX_MENU_LENGTH){
			$(".js-addMenuBtn").show();
		}
		
		$("#menuList>li").removeClass("size1of"+($("#menuList>li").length-1));
		$("#menuList>li").addClass("size1of"+index);
		
		// 隐藏子菜单“+”号
		$(".sub_pre_menu_list li[class='jsSubMenu']").show();
		if(menu_id_arr.toString() != default_arr){
			modifyWeixinMenuSort(menu_id_arr,1);
		}else if(sub_menu_id_arr.toString() != default_sub_arr){
			modifyWeixinMenuSort(sub_menu_id_arr,2);
		}
	});
	
	/**
	 * 删除菜单
	 */
	$("#jsDelBt").click(function(){
		var menu_name = $(this).attr("data-menuname");
		$( "#dialog" ).dialog({
			buttons: {
				"确定": function() {
					deleteWeixinMenu($("#jsDelBt").attr("data-menuid"));
					$(this).dialog('close');
				},
				"取消,#f5f5f5,#666": function() {
					$(this).dialog('close');
				},
			},
			contentText:"删除后“" +menu_name+ "”菜单下设置的内容将被删除，确定要执行该操作吗？",
		});
	});
	
	/**
	 * 右侧编辑图文消息单选按钮["发送消息"]
	 */
	$(".js_radio_sendMsg").click(function(){
		$(this).addClass("selected").siblings().removeClass("selected");
		$("#edit").show();
		$("#url").hide();
		$("#small_program").hide();
		updateMenuType(2);//图文消息和链接如果都存在，则判断当前选中更新类型
	});
	
	/**
	 * 右侧编辑["跳转网页"]单选按钮
	 */
	$(".js_radio_url").click(function(){
		$(this).addClass("selected").siblings().removeClass("selected");
		$("#edit").hide();
		$("#small_program").hide();
		$("#url").show();
		updateMenuType(1);//图文消息和链接如果都存在，则判断当前选中更新类型
	});

	/**
	 * 编辑菜单内容 点击跳转小程序
	 */	
	$(".js_small_program").click(function(){
		$(this).addClass("selected").siblings().removeClass("selected");
		$("#edit").hide();
		$("#url").hide();
		$("#small_program").show();
		updateMenuType(4);
	});
	
	/**
	 * 右侧编辑["发送消息"]选择类型 目前只有一个类型：图文消息
	 */
	$(".js_tab_navs li").click(function(){
		/*$(".tab_content").hide();
		$(".js_tab_navs li").removeClass("selected");
		$(this).addClass("selected");
		var tab = $(this).attr("data-tab");
		$(tab).parent().show();*/
	});
	
	/**
	 * 右侧编辑["发消息"]点击“从素材库中选择”
	 */
	$(".jsMsgSenderPopBt").click(function(){
		showMaterial();
	});

	
	/**
	 * 保存并发布
	 */
	$("#pubBt").click(function(){
		if(validation()){
			$.ajax({
				url : __URL(ADMINMAIN+"/wchat/updatemenutoweixin"),
				type : "post",
				success : function(res){
					if(res.code>0){
						showDialog(res.message,1);
					}else{
						showDialog(res.message,0);
					}
				}
			})
		}else{
//			showDialog("请先按要求编辑完当前操作！！！", 0);
		}
	});
	
	/**
	 * 手机预览
	 */
	$("#viewBt").click(function(){
		$("#mobileDiv").fadeIn();
		$("#maskLayer").fadeIn();
	});
	
	/**
	 * 关闭手机预览
	 */
	$("#viewClose").click(function(){
		$("#mobileDiv").fadeOut();
		$("#maskLayer").fadeOut();
	});
	
	/**
	 * 预览模式下的菜单点击时间
	 */
	$(".jsView").live("click",function(){
		if($(this).next().find("ul li").length > 0){
			$(this).next().toggle();
		}
	});
	
	/**
	 * 预览文章
	 */
	$(".js-preview").live("click",function(){
		if($(this).attr("data-media-item-id")) window.open(__URL(APPMAIN + "/wchat/message?media_id=" + $(this).attr("data-media-item-id")));
	});
	
	/**
	 * 网址验证，可以为空
	 */
	$("#urltext,#smallProgramUrltext").keyup(function(){
		if($(this).val().length>0){
			if(!validateDomainName($(this).val())){
				$(this).parent().next().removeClass("dn");
				$(this).parent().next().text("网址不正确");
				$(this).attr("data-flag","-1");
				IS_OK = false;
			}else{
				$(this).parent().next().addClass("dn");
				$(this).attr("data-flag","1");
				IS_OK = true;
			}
		}else{
			$(this).parent().next().addClass("dn");
			$(this).attr("data-flag","1");
		}
	});
	
	
	/**
	 * 删除图文消息
	 */
	$(".jsmsgSenderDelBt").click(function(){
		$("#show_media").hide();
		$(".js_appmsgArea .jsMsgSendTab").show();
		var obj = getCurrentMenu();
		//删除图文消息后，类型改为文本
		modifyWeiXinMenuMessage(obj.attr("data-menuid"), 0, 1);
	});

});

//验证
function validation(){
	if(!IS_OK){
		return false;
	}
	var flag = false;
	var msg = "";
	//验证一级二级菜单数据是否正确
	$("#menuList .jsMenu").each(function(){
		var menu_self = this;
		if($(this).next().find("li.jsSubMenuInner").length){
			//有二级菜单
			$(this).next().find("li.jsSubMenuInner").each(function(){
				if($(this).hasClass("current") && $(".js_radio_sendMsg").hasClass("selected") && ($(this).children("a").attr("data-mediaid") == undefined || $(this).children("a").attr("data-mediaid") == "" || parseInt($(this).children("a").attr("data-mediaid")) == 0)){
					flag = true;
					msg = "请选择图文消息";
					return false;
				}else{
					
					if(parseInt($(this).children("a").attr("data-menu-type")) == 1 && ($(this).children("a").attr("data-menu-eventurl") == undefined || $(this).children("a").attr("data-menu-eventurl") == "")){
						flag = true;
						msg = "跳转网址不能为空";
						menuClick(menu_self);
						subMenuClick(this);
						return false;
					}

					if(parseInt($(this).children("a").attr("data-menu-type")) == 4 && ($(this).children("a").attr("data-menu-eventurl") == undefined || $(this).children("a").attr("data-menu-eventurl") == "")){
						flag = true;
						msg = "跳转网址不能为空";
						menuClick(menu_self);
						subMenuClick(this);
						return false;
					}

					if(parseInt($(this).children("a").attr("data-menu-type")) == 4 && ($(this).children("a").attr("data-appid") == undefined || $(this).children("a").attr("data-appid") == "")){
						flag = true;
						msg = "小程序appid不能为空";
						menuClick(menu_self);
						subMenuClick(this);
						return false;
					}

					if(parseInt($(this).children("a").attr("data-menu-type")) == 4 && ($(this).children("a").attr("data-pagepath") == undefined || $(this).children("a").attr("data-pagepath") == "")){
						flag = true;
						msg = "小程序页面路径不能为空";
						menuClick(menu_self);
						subMenuClick(this);
						return false;
					}
				}
			});
			if(flag){
				return false;
			}
		}else{
			if($(this).parent().hasClass("current") && $(".js_radio_sendMsg").hasClass("selected") && ($(this).attr("data-mediaid") == undefined || $(this).attr("data-mediaid") == "" || parseInt($(this).attr("data-mediaid")) == 0)){
				msg = "请选择图文消息";
				flag = true;
				return false;
			}else{
			
				if(parseInt($(this).attr("data-menu-type")) == 1 && ($(this).attr("data-menu-eventurl") == undefined || $(this).attr("data-menu-eventurl") == "")){
					flag = true;
					msg = "跳转网址不能为空";
					menuClick(menu_self);
					return false;
				}
				if(parseInt($(this).attr("data-menu-type")) == 4 && ($(this).attr("data-menu-eventurl") == undefined || $(this).attr("data-menu-eventurl") == "")){
					flag = true;
					msg = "跳转网址不能为空";
					menuClick(menu_self);
					return false;
				}
				if(parseInt($(this).attr("data-menu-type")) == 2 && ($(this).attr("data-mediaid") == undefined || $(this).attr("data-mediaid") == "" || parseInt($(this).attr("data-mediaid")) == 0)){
					msg = "请选择图文消息";
					flag = true;
					menuClick(menu_self);
					return false;
				}
				
				if(parseInt($(this).attr("data-menu-type")) == 4 && ($(this).attr("data-appid") == undefined || $(this).attr("data-appid") == "")){
					flag = true;
					msg = "小程序appid不能为空";
					menuClick(menu_self);
					return false;
				}

				if(parseInt($(this).attr("data-menu-type")) == 4 && ($(this).attr("data-pagepath") == undefined || $(this).attr("data-pagepath") == "")){
					flag = true;
					msg = "小程序页面路径不能为空";
					menuClick(menu_self);
					return false;
				}
			}
		}
	});
	
	if(flag){
		showDialog(msg, 0);
		return false;
	}
	return true;
}


//每次点击一级菜单后，让右侧的编程内容还原（显示菜单内容，）
function setRightMenuDetail(){
	$(".js_radio_sendMsg").addClass("selected");
	$(".js_radio_url").removeClass("selected");
	$("#edit").show();
	$("#url").hide();
}


/**
 * 获取当前选中的菜单
 */
function getCurrentMenu(){
	var obj = $("#menuList").find("li[class*='current']>a");
	return obj;
}

/**
 * 选中图文素材后的回调函数
 * @param media_id
 */
function getMaterial(media_id){
	getWeixinMediaDetail(media_id,true);
}

/**
 * 设置垂直居中
 */
function setVerticalCenter(obj){
	$(obj).css({'top':($(window).height()-$(obj).outerHeight())/2,"display":"block"});
}

/**
 *显示提示框，两秒后关闭
 * @param flag 0：成功，1：失败
 */
function showDialog(str,flag){
	if(flag == 0){
		$("#wxTips").addClass("error");
		$("#wxTips").removeClass("success");
	}else{
		$("#wxTips").addClass("success");
		$("#wxTips").removeClass("error");
	}
	$("#wxTips").find("div").text(str);
	$("#wxTips").fadeIn();
	setTimeout("$('#wxTips').fadeOut()",2000);
}

/**
 * 设置当前选中的一级菜单是否有子菜单，如果有则仅可设置菜单名称。
 */
function setCurrentChildMenuDisplay(){
	var elementLength = $("#menuList li[class*='current'] a").next().find("ul li[class*='jsSubMenuInner']").length;
	if(elementLength == 0){
		$("#js_innerNone").hide();
		$(".js_setGraphic").show();
	}else{
		$("#js_innerNone").show();//已添加子菜单，仅可设置菜单名称。
		$(".js_setGraphic").hide();
	}
}

/**
 * 设置图文消息列表是否显示,没有则清空图文消息
 * @param mediaid
 */
function setMediaDisplay(mediaid){
	if(mediaid !=undefined && parseInt(mediaid) != 0){
		clearMediaMessage();
		getWeixinMediaDetail(mediaid);
		$(".js_appmsgArea .jsMsgSendTab").hide();
		$("#show_media").show();
	}else{
		clearMediaMessage();//清空图文消息
		$(".js_appmsgArea .jsMsgSendTab").show();
		$("#show_media").hide();
	}
}

/**
 * 清空图文消息
 */
function clearMediaMessage(){
	$("#show_media .appmsg_date").text("");
	$("#show_media .js-media-title a").text("");
	$("#show_media .appmsg_thumb_wrp").attr("style","");
	$("#show_media .appmsg_item.has_cover").remove();
	$("#show_media .js-preview").removeAttr("data-media-item-id");
}

function updateInfoNew(menu){
	setCurrentChildMenuDisplay();//设置当前选中的一级菜单是否有子菜单，如果有则仅可设置菜单名称。
	setMediaDisplay(menu.media_id);//设置图文消息列表是否显示,没有则清空图文消息
	
	var mobileObj = null;//手机预览
	if(menu.pid == 0){
		//一级菜单
		$("#jsDelBt").text("删除菜单");
		$(".js_titleNolTips").text(DEFAULT_MENU_TIP);
		$(".js_titleNolTips").attr("data-selected","menu");//标识当前选中的是一级菜单
		//手机预览
		mobileObj = $("#viewList>li>a[data-menuid='"+menu.menu_id+"']");
	}else{
		//二级菜单
		$("#jsDelBt").text("删除子菜单");
		$(".js_titleNolTips").text(DEFAULT_SUB_MENU_TIP);
		$(".js_titleNolTips").attr("data-selected","submenu");//标识当前选中的是二级菜单
		//手机预览
		mobileObj = $("#viewList>li>div a[data-menuid='"+menu.menu_id+"']");
	}
	//手机预览
	mobileObj.text(menu.menu_name);
	mobileObj.attr("title",menu.menu_name);
	
	
	//更新右侧边栏数据
	$(".js_second_title_bar h4").text(menu.menu_name);//右侧标题
	$("#jsDelBt").attr("data-menuid",menu.menu_id);//删除按钮
	$("#jsDelBt").attr("data-menuname",menu.menu_name);//记录当初操作后的菜单名称，用于删除提示
	$("#menuname").val(menu.menu_name);//右侧标题菜单名称输入框	
	
	
	var obj = getCurrentMenu();//当前选中的菜单，更新数据
	obj.children("span").text(menu.menu_name);
	obj.attr("data-menuid",menu.menu_id);
	obj.attr("data-pid",menu.pid);
	obj.attr("data-menu-eventurl",menu.menu_event_url);
	obj.attr("data-menu-type",menu.menu_event_type);
	obj.attr("data-detault-menu-type",menu.menu_event_type);
	obj.attr('data-mediaid',menu.media_id);//当前选中菜单的图文消息
	obj.attr("data-sort",menu.sort);
	//如果是一级菜单，则给它下边的所有二级菜单更新父id(data-pid)
	if(menu.pid == 0){
		obj.next().find("ul li").attr("data-pid",menu.menu_id);
	}else{
		// //如果当前选择的是二级菜单，则将一级菜单的data-menu-type设置为1，data-mediaid设置为0。
		// if(parseInt($("a[data-menuid='"+menu.pid+"']").attr("data-menu-type"))!= 1){
		// 	$("a[data-menuid='"+menu.pid+"']").attr("data-menu-type",1);
		// 	$("a[data-menuid='"+menu.pid+"']").attr('data-mediaid',0);//当前选中菜单的图文消息
		// 	//modifyWeiXinMenuMessage(menu.pid, 0, 1);
		// }
	}
}

/**
 * 找到当前选中的菜单如果链接和图文消息都有，则判断选择那个
 * 如果图文消息和跳转链接都存在数据，那么就要给每个菜单记录，选中那个用那个。类型对应的要变；1、2。
 */
function updateMenuType(type){
	var obj = getCurrentMenu();
	modifyWeixinMenuEventType(obj.attr("data-menuid"),type);
//	alert(obj.attr("data-detault-menu-type"));
//	if(obj.attr("data-mediaid") != 0 && (obj.attr("data-menu-eventurl") != null && obj.attr("data-menu-eventurl") != "")){
//		if($(".js_radio_url").hasClass("selected")){
//			modifyWeixinMenuEventType(obj.attr("data-menuid"),1);
//		}else{
//			modifyWeixinMenuEventType(obj.attr("data-menuid"),obj.attr("data-detault-menu-type"));
//		}
//	}
}

/**
 * 修改菜单类型，1：文本，2：单图文，3：多图文
 * @param menu_id
 * @param menu_event_type
 */
function modifyWeixinMenuEventType(menu_id,menu_event_type){
	$.ajax({
		url : __URL(ADMINMAIN + "/wchat/modifyweixinmenueventtype"),
		type : "post",
		async : false,
		data : { "menu_id" : menu_id, "menu_event_type" : menu_event_type},
		success : function(res){
			if(res>0){
				var obj = getCurrentMenu();
				obj.attr("data-menu-type",menu_event_type);
//				showDialog("修改成功", 1);
			}else{
				showDialog("修改失败", 0);
			}
		}
	})
}

/**
 * 添加微信自定义菜单
 * @param menu 菜单信息
 * @param obj 当前对象
 */
function addWeixinMenu(menu){
	$.ajax({
		url : __URL(ADMINMAIN + "/wchat/addweixinmenu"),
		type : "post",
		async : false,
		data : { "menu" : JSON.stringify(menu) },
		success : function(menu_id){
			if(menu_id>0){
				//每次添加菜单默认类型是，跳转链接
				$(".js_radio_url").addClass("selected").siblings().removeClass("selected");
				$("#edit").hide();//编辑图文消息
				$("#url").show();//跳转链接输入框
				$("#small_program").hide();//跳转链接输入框
				
				menu.menu_id = menu_id;//设置添加菜单后的id
				//更新手机预览的菜单id
				$("#viewList li a[data-menuid='-1']").attr("data-menuid",menu_id);
				updateInfoNew(menu);
				showDialog("“"+menu.menu_name+"”添加成功",1);
			}else{
				showDialog("“"+menu.menu_name+"”添加失败",0);
			}
		}
	})
}

/**
 * 修改菜单名称
 * @param menu_id
 * @param menu_name
 */
function modifyWeixinMenuName(menu_id, menu_name){
	$.ajax({
		url : __URL(ADMINMAIN + "/wchat/modifyweixinmenuname"),
		type : "post",
		async : false,
		data : { "menu_id" : menu_id, "menu_name" : menu_name},
		success : function(res){
			if(res>0){
				var obj = getCurrentMenu();
				var menu = new Object();
				menu.menu_name = menu_name;
				menu.media_id = obj.attr("data-mediaid");
				menu.menu_id = obj.attr("data-menuid");
				menu.pid = obj.attr("data-pid");
				menu.menu_event_url = obj.attr("data-menu-eventurl");
				menu.menu_event_type = obj.attr("data-menu-type");
				updateInfoNew(menu);
				showDialog("修改“"+menu_name+"”成功", 1);
			}else{
				showDialog("修改“"+menu_name+"”失败", 0);
			}
		}
	})
}

/**
 * 修改跳转链接地址
 * @param menu_id
 * @param menu_event_url
 */
function modifyWeixinMenuUrl(menu_id,menu_event_url){
	$.ajax({
		url : __URL(ADMINMAIN + "/wchat/modifyweixinmenuurl"),
		type : "post",
		async : false,
		data : { "menu_id" : menu_id, "menu_event_url" : menu_event_url},
		success : function(res){
			if(res>0){
				var obj = getCurrentMenu();
				obj.attr("data-menu-eventurl",menu_event_url);
				showDialog("修改成功", 1);
			}else{
				showDialog("修改失败", 0);
			}
		}
	})
}

/**
 * 删除微信自定义菜单
 * @param menuid 菜单id
 */
function deleteWeixinMenu(menu_id){
	var flag = true;//判断当前删除的菜单是否是子菜单
	if($("#menuList li[class*='current'] a").attr("data-pid") != 0){
		flag = false;//当前删除的是子菜单
	}
	var length = $("#menuList>li[data-menu-index]").length;//长度包含“+”号
	var pid = $(".jsSubMenuInner a[data-menuid='"+menu_id+"']").attr("data-pid");
	$("#menuList li[class*='current'] a").parent().remove();//删除选中的菜单
	$("#js_none").show();
	$("#js_none").text("点击左侧菜单进行编辑操作");
	$("#js_rightBox").hide();
	if(flag){
		//一级菜单删除操作
		var classIndex = $(".js-addMenuBtn").attr("data-class-index");
		$("#menuList>li").removeClass("size1of"+classIndex);
		$("#menuList>li").addClass("size1of"+length);
		if(length == 2){
			//长度等于2，代表一个菜单和一个“+”号按钮
			$("#orderDis").removeClass("dn");
			$("#orderBt").addClass("dn");
		}else if(length == 1){
			$("#menuList").addClass("no_menu");
			$(".js-addMenuBtn a").append("<span>添加菜单</span>");
			$("#orderDis").addClass("dn");
		}
		$(".js-addMenuBtn").attr("data-class-index",length);
		$(".js-addMenuBtn").show();
		$(".jsMenu").next("div[class='sub_pre_menu_box']").hide();//隐藏其他二级菜单
		
		//删除手机预览，一级菜单下的全部
		$("#viewList>li a[data-menuid='"+menu_id+"']").parent().remove();
		//调整宽度
		$("#viewList>li").removeClass("size1of"+length);
		$("#viewList>li").addClass("size1of"+(length-1));
		
	}else{
		$(".jsSubMenu[data-pid='"+pid+"']").show();
		//删除手机预览
		if($("#viewList .sub_pre_menu_list li").length==1){
			$("#viewList .sub_pre_menu_list li a[data-menuid='"+menu_id+"']").parent().parent().parent().prev().find("i").remove();
		}
		$("#viewList .sub_pre_menu_list li a[data-menuid='"+menu_id+"']").parent().parent().parent().hide();
		$("#viewList .sub_pre_menu_list li a[data-menuid='"+menu_id+"']").parent().parent().remove();
	}
	$.ajax({
		url : __URL(ADMINMAIN + "/wchat/deleteweixinmenu"),
		type : "post",
		async : false,
		data : { "menu_id" : menu_id },
		success : function(res){
			if(res>0){
				showDialog("删除成功",1);
			}else{
				showDialog("删除失败",0);
			}
		}
	})
}

/**
 * 修改图文消息
 * @param $menu_id
 * @param $media_id
 * @param $menu_event_type
 */
function modifyWeiXinMenuMessage(menu_id, media_id, menu_event_type){
	$.ajax({
		url : __URL(ADMINMAIN + "/wchat/modifyweixinmenumessage"),
		type : "post",
		async : false,
		data : { "menu_id" : menu_id, "media_id" : media_id, "menu_event_type" : menu_event_type},
		success : function(res){
			if(res>0){
				var obj = getCurrentMenu();
				obj.attr("data-menu-type",menu_event_type);
				obj.attr("data-mediaid",media_id);
				showDialog("操作成功", 1);
			}else{
				showDialog("操作失败", 0);
			}
		}
	})
}

/**
 * 获取图文素材，并更新菜单信息
 * @param media_id
 */
function getWeixinMediaDetail(media_id,flag){
	$.ajax({
		url : __URL(ADMINMAIN + "/wchat/getweixinmediadetail"),
		type : "post",
		async : false,
		data : { "media_id" : media_id },
		success : function(mediaObj){
			setMediaDetail(mediaObj);//加载图文消息代码
			if(flag){
				var obj = getCurrentMenu();
				modifyWeiXinMenuMessage(obj.attr("data-menuid"), media_id, mediaObj.type);
			}
		}
	})
}

/**
 * 设置图文消息
 */
function setMediaDetail(mediaObj){
	$(".js_appmsgArea .jsMsgSendTab").hide();
	$("#show_media").show();
	var html = "";
	//图文消息 2 3
	if(mediaObj.type == 2 || mediaObj.type == 3){
		var list = mediaObj.item_list;
		for(var i=0;i<list.length;i++){
			if(i == 0){
				//封面
				var firstObj = $(".cover_appmsg_item");
				firstObj.find(".js-media-title a").text(list[i]["title"]);
				var style = "background-image:url('" + __IMG(list[i]["cover"]) + "')";
				$(".cover_appmsg_item>div").attr("style",style);
				$(".cover_appmsg_item>div").text("");
				$(".cover_appmsg_item>.js-preview").attr("data-media-item-id",list[i].id);
			}else{
				html += '<div class="appmsg_item has_cover">';
				html += '<div class="appmsg_thumb_wrp" style="background-image:url(' + __IMG(list[i]["cover"]) + ');"></div>';
				html += '<h4 class="appmsg_title js_title"><a href="' + list[i]["content_source_url"] + '" target="_blank">' + list[i]["title"] + '</a></h4>';
				//预览文章地址,showDialog(&#39;微信还没有给您生成呢，想啥呢？不能预览！！！&#39;)
				html += '<a href="javascript:;" class="edit_mask preview_mask js-preview" data-media-item-id="' + list[i].id + '">';
				html += '<div class="edit_mask_content"><p style="color:#fff;">预览文章</p></div>';
				html += '<span class="vm_box"></span></a></div>';
			}
		}	
	}else{
		//单文本
		$(".js-media-title").find("a").text(mediaObj.title);//主标题
		$(".cover_appmsg_item>div").attr("style","");
		$(".cover_appmsg_item>div").text(mediaObj.title);
		$(".cover_appmsg_item>.js-preview").attr("data-media-item-id",mediaObj.item_list[0].id);
	}
	$(".appmsg_date").text(mediaObj.create_time);//发布时间
	$(".cover_appmsg_item").next().remove();
	$(".cover_appmsg_item").parent().append(html);
}

/**
 * 修改排序
 * @param flag ：1 默认一级排序，2 默认二级排序
 */
function modifyWeixinMenuSort(menu_id_arr,flag){
	$.ajax({
		url : __URL(ADMINMAIN + "/wchat/modifyweixinmenusort"),
		type : "post",
		async : false,
		data : { "menu_id_arr" : menu_id_arr.toString() },
		success : function(res){
			if(res>0){
				if(flag == 1){
					$("#hidden_default_sort").val(menu_id_arr);
				}else if(flag == 2){
					$("#hidden_default_sub_sort").val(menu_id_arr);
				}
				showDialog("操作成功",1);
			}else{
				showDialog("操作失败",0);
			}
		}
	})
}

/**
 * 一级菜单点击事件
 * 2017年8月1日 10:33:58
 * @param obj 当前点击对象
 */
function menuClick(obj){

	var element = "div[class='sub_pre_menu_box']";
	$(".jsMenu").parent().find(element).hide();//隐藏其他二级菜单
	$(".js_titleEorTips").hide();
	$(".jsMenu").parent().removeClass("current");//清除一级菜单中的选中
	$(".jsSubMenuInner").removeClass("current");//清除二级菜单选中
	$(obj).parent().find(element).show();//显示二级菜单
	$(obj).parent().addClass("current");

	var sub_arr = new Array();
	$(obj).next().find(".sub_pre_menu_list li[class*='jsSubMenuInner']").each(function(){
		sub_arr.push($(obj).find("a").attr("data-menuid"));
	});
	$("#hidden_default_sub_sort").val(sub_arr);
	
	//完成按钮显示的情况下，不能操作
	if(!$("#finishBt").is(":hidden")){
		$("#js_none").show();
		$("#js_rightBox").hide();
		setSubMenuDisplay();
		return;
	}else{
		$("#js_none").hide();
		$("#js_rightBox").show();
	}
	setCurrentChildMenuDisplay();//设置当前选中的一级菜单是否有子菜单，如果有则仅可设置菜单名称。
	setRightMenuDetail();//每次点击一级菜单后，让右侧的编程内容还原（显示菜单内容，）
	/**
	 * 当前菜单是否有图文消息
	 */
	setMediaDisplay($(obj).attr("data-mediaid"));//设置图文消息列表是否显示,没有则清空图文消息

	//单图文、多图文消息
	if(parseInt($(obj).attr("data-menu-type")) == 2 || parseInt($(obj).attr("data-menu-type")) == 3){
		$(".js_radio_sendMsg").addClass("selected").siblings().removeClass("selected");
		$("#edit").show();
		$("#url").hide();
		$("#small_program").hide();
	}else if(parseInt($(obj).attr("data-menu-type")) == 4){
		$(".js_small_program").addClass("selected").siblings().removeClass("selected");
		$("#edit").hide();
		$("#url").hide();
		$("#small_program").show();
	}else{
		//跳转链接
		$(".js_radio_url").addClass("selected").siblings().removeClass("selected");
		$("#small_program").hide();
		$("#edit").hide();//编辑图文消息
		$("#url").show();//跳转链接输入框
	}
	//右侧编辑头部标题
	var menuname = $.trim($(obj).find("span").text());
	var menuid = $(obj).attr("data-menuid");
	var menu_event_url = $(obj).attr("data-menu-eventurl");//菜单url
	var appid = $(obj).attr("data-appid");//菜单url
	var pagepath = $(obj).attr("data-pagepath");//小程序跳转页路径
	$(".js_titleNolTips").text(DEFAULT_MENU_TIP);//汉字或16个字母
	$(".js_titleNolTips").attr("data-selected","menu");
	$(".js_second_title_bar h4").text(menuname);
	$("#menuname").val(menuname);
	$("#jsDelBt").text("删除菜单");
	$("#jsDelBt").attr("data-menuid",menuid);
	$("#jsDelBt").attr("data-menuname",menuname);
	$("#urltext").val(menu_event_url);
	$("#smallProgramUrltext").val(menu_event_url);
	$("#appid").val(appid);
	$("#pagepath").val(pagepath);
}

/**
 * 二级菜单点击事件
 * 2017年8月1日 10:38:31
 * @param obj 当前点击对象
 */
function subMenuClick(obj){
	$("#js_innerNone").hide();
	$(".js_setGraphic").show();//显示编辑
	$(".js_titleEorTips").hide();
	$(".jsMenu").parent().removeClass("current");
	$(".jsSubMenuInner").removeClass("current");
	$(obj).addClass("current");

	//完成按钮显示的情况下，不能操作
	if(!$("#finishBt").is(":hidden")){
		$("#js_none").show();
		$("#js_rightBox").hide();
		setSubMenuDisplay();
		return;
	}else{
		$("#js_none").hide();
		$("#js_rightBox").show();
	}

	/**
	 * 当前菜单是否有图文消息
	 */
	setMediaDisplay($(obj).find("a").attr("data-mediaid"));
	setRightMenuDetail();//每次点击一级菜单后，让右侧的编程内容还原（显示菜单内容，）

	//单图文、多图文消息
	if(parseInt($(obj).find("a").attr("data-menu-type")) == 2 || parseInt($(obj).find("a").attr("data-menu-type")) == 3){
		$(".js_radio_sendMsg").addClass("selected").siblings().removeClass("selected");
		$("#edit").show();
		$("#url").hide();
		$("#small_program").hide();
	}else if(parseInt($(obj).find("a").attr("data-menu-type")) == 4){
		$(".js_small_program").addClass("selected").siblings().removeClass("selected");
		$("#edit").hide();
		$("#url").hide();
		$("#small_program").show();
	}else{
		//跳转链接
		$(".js_radio_url").addClass("selected").siblings().removeClass("selected");
		$("#edit").hide();//编辑图文消息
		$("#small_program").hide();
		$("#url").show();//跳转链接输入框
	}
	//右侧编辑头部标题
	var menuname = $.trim($(obj).find("span").text());
	var menuid = $(obj).find("a").attr("data-menuid");
	var menu_event_url = $(obj).find("a").attr("data-menu-eventurl");//菜单url
	var appid = $(obj).find("a").attr("data-appid");//小程序appid
	var pagepath = $(obj).find("a").attr("data-pagepath");//小程序跳转页路径
	$(".js_titleNolTips").text(DEFAULT_SUB_MENU_TIP);//汉字或16个字母
	$(".js_titleNolTips").attr("data-selected","submenu");
	$(".js_second_title_bar h4").text(menuname);
	$("#menuname").val(menuname);
	$("#jsDelBt").text("删除子菜单");
	$("#jsDelBt").attr("data-menuid",menuid);
	$("#jsDelBt").attr("data-menuname",menuname);
	$("#urltext").val(menu_event_url);
	$("#smallProgramUrltext").val(menu_event_url);
	$("#appid").val(appid);
	$("#pagepath").val(pagepath);
}

/**
 * aa:一个汉字占2个字节
 * 修改时间：2017年8月4日 18:41:02
 */
function testMenu(str,type) {
	if(type == "menu"){
		return /^[a-zA-Z-0-9]{1,8}$/.test((str + '').replace(/[\u4e00-\u9fa5]/g, 'aa'));
	}else if(type == "sub_menu"){
		return /^[a-zA-Z-0-9]{1,16}$/.test((str + '').replace(/[\u4e00-\u9fa5]/g, 'aa'));
	}
}


/**
 * 验证域名
 * 创建时间：2017年7月31日 19:47:09
 * 更新时间：2017年8月4日 20:49:55
 * @param str
 * @returns boolean
 */
function validateDomainName(str){
//	console.log(str.indexOf("http") != -1 || str.indexOf("https") != -1);
	if(str.indexOf("http") != -1 || str.indexOf("https") != -1){
		return true;
	}
	return false;
//	var strRegex = "^((https|http|ftp|rtsp|mms)?://)"
//	+ "?(([0-9a-z_!~*'().&=+$%-]+: )?[0-9a-z_!~*'().&=+$%-]+@)?"
//	+ "(([0-9]{1,3}\.){3}[0-9]{1,3}"
//	+ "|"
//	+ "([0-9a-z_!~*'()-]+\.)*"
//	+ "([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\."
//	+ "[a-z]{2,6})"
//	+ "(:[0-9]{1,4})?"
//	+ "((/?)|"
//	+ "(/[0-9a-z_!~*'().;?:@&=+$,%#-]+)+/?)$";
//	return new RegExp(strRegex).test(str);
}