//本文件依赖于jq
//后台通用函数
//window.onerror = function(){return true;} //发布时必须使用
var kg = {};
//将元素中的 title 标签中的内容转换成 div 显示
//本函数需在对象后调用
// 需一个名为 title_div 的样式支持，可以通过样式固定该容器的宽度，也可以在内容中使用手动换行
// @param string css：要转换的元素CSS名称，将当前标签中的 title 转成 div
kg.title2div = function(css) {
	var title;
	$('.' + css).hover(function() {
		//获取当前 title 字串并将立即将其设置为空，防止a标签中系统自动显示
		title = this.title;
		this.title = '';
		$(this).css('cursor', 'pointer'); //手形
		//创建一个div
		$('body').append('<div id="titlediv_jq" class="title_div rounded">' + title + '</div>');
		//当前可视窗口宽
		var win_width = document.documentElement.clientWidth ? document.documentElement.clientWidth : (window.innerWidth ? window.innerWidth : (document.body.clientWidth ? document.body.clientWidth : 1024));
		//div宽度
		var width = $('#titlediv_jq').width();
		//if(width > 400){width = 400;}	
		//div定位x，1、当前元素位于屏幕左侧时：左边距离 = 当前元素x座标 + 当前元素宽度。2、当前元素位于屏幕右侧时：左边距 = 当前元素Y座标 - div宽
		var x = $(this).offset().left;
		var left = x < (win_width / 2) ? x + $(this).width() : x - width;
		//div定位y，顶部距离 = 当前元素y坐标 + 当前元素高度
		var top = $(this).offset().top + $(this).height();
		//div重新定位
		$('#titlediv_jq').css({
			'top': top + "px",
			"left": left + "px",
			"opacity": '0'
		});
		$('#titlediv_jq').animate({
			opacity: '0.9'
		}, 600); // 透明度
	}, function() {
		this.title = title; //还原当前 title
		$('#titlediv_jq').remove(); //删除创建的 
	});
};
//全选/取消全选，对指定表单内的复选框进行全选或取消。例:<input name="all" type="checkbox" onclick="kg.select_all(this.form);">
kg.select_all = function(form) {
	for (var i = 0; i < form.elements.length; i++) {
		var e = form.elements[i];
		if (e.Name != "all" && e.disabled != true && e.type == 'checkbox') {
			e.checked = form.all.checked;
		}
	}
};
//设置Cookie
//name：Cookie变量名，value：Cookie变量值，seconds：Cookie保存周期(秒)[缺省值为浏览器进程]，path：作用路径[缺省值为"/"], domain：作用域[缺省值为当前域名]
kg.setcookie = function(name, value, seconds, path, domain) {
	var expires = new Date();
	expires.setTime(expires.getTime() + seconds * 1000);
	document.cookie = escape(name) + '=' + escape(value) + (typeof(seconds) != 'undefined' ? '; expires=' + expires.toGMTString() : '') + (typeof(path) != 'undefined' ? '; path=' + path : '; path=/') + (typeof(domain) != 'undefined' ? '; domain=' + domain : '');
}
//获取Cookie
kg.getcookie = function(name) {
	var cookie_start = document.cookie.indexOf(name);
	var cookie_end = document.cookie.indexOf(";", cookie_start);
	return cookie_start == -1 ? '' : unescape(document.cookie.substring(cookie_start + name.length + 1, (cookie_end > cookie_start ? cookie_end : document.cookie.length)));
}
// 按比例调整图像大小，获取源图片大小，按比例缩小至指定大小，保证图片缩小不变形。该方法无需Jq支持
// 注意必须加一个外围容器指定同当前图片大小，并隐藏超出部分。img标签中须定义 width 和 height，此方法会自动获取该值
// @param object a：this
// @example：<img onload="mle.img_auto_size(this)" src="{:$p['picture'][1]:}" width="400" height="400" />
kg.img_auto_size = function(a) {
	// alert(a.src + "\r\n" + a.width + "\r\n" + a.height);
	if (!isNaN(a.width) && !isNaN(a.height)) { // 获取缩略图规格成功
		// 获取源图片实际规格
		var img = new Image();
		// img 标签中的 onload 事件不符合 W3C 标准，可能有部分浏览器不支持，
		// 这里使用 img.onload 事件很有必要，确保图片下载完毕以获取源图片实际规格
		img.onload = function() {
			if (!isNaN(img.width) && !isNaN(img.height)) { // 源图片规格获取成功
				var offset = 0; // 多余边缘偏移值初始化，单位：px
				var narrow_w = img.width / a.width; // 宽度需要缩小的倍数
				var narrow_h = img.height / a.height; // 高度需要缩小的倍数
				// 重新调整图片大小并浮动
				if (narrow_w <= narrow_h) {
					// 高度有超出，超出部分上下各隐藏 50%，保持图片中心点
					offset = 0 - Math.round((img.height / narrow_w - a.height) / 2);
					a.style.width = a.width + 'px'; // 固定宽度
					a.style.height = 'auto'; // 自动高度
					if (offset < 0) a.style.marginTop = offset + 'px'; // 高度有超出，超出部分上下各隐藏 50%
				} else {
					// 宽度有超出，超出部分左右各隐藏 50%，保持图片中心点
					offset = 0 - Math.round((img.width / narrow_h - a.width) / 2);
					a.style.width = 'auto'; // 自动宽度
					a.style.height = a.height + 'px'; // 固定高度
					if (offset < 0) a.style.marginLeft = offset + 'px'; // 高度有超出，超出部分上下各隐藏 50%				
				}
			}
		}
		img.src = a.src; // 要获取的源图片 URL
	}
};
//手机号码正则
// @param: telnum 为传进需要检测的手机号码
// return: 返回检测的结果
kg.isTelCode = function(telnum) {
	var reg = /^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/;
	return reg.test(telnum);
}
//邮箱正则
// @param: email 为传进需要检测的邮箱
// return: 返回检测的结果
kg.isEmail = function(email) {
	var reg = /^\w+@[a-zA-Z0-9]{2,10}(?:\.[a-z]{2,4}){1,3}$/;
	return reg.test(email);
}
//------------------后台通用脚本-------------------------
$(function() {
	//==========================
	// 快捷入口中的模糊查询
	//==========================
	var text = "";
	setInterval(function() {
		text = $('.search-bar').val();
		if ($.trim(text) != "" && $(".component-js-search>li").filter(":contains('" + text + "')").length != 0) {
			$(".component-js-search>li").hide().filter(":contains('" + text + "')").show();
			$(".component-js-search").css("height", "auto").css("paddingBottom", "0");
		} else {
			$('.component-js-search>li').show();
			$(".component-js-search").css("height", "336px").css("overflow", "auto");
		}
	}, 100);
	// ==========================
	// 顶部搜索
	// ==========================
	$('.search-bar').focus(function() {
		$(this).parent().next('.am-dropdown-content').show();
	});
	$('body').click(function() {
		$('.search-bar').parent().next('.am-dropdown-content').hide();
	})
	$('#top-search').click(function(event) {
		event.stopPropagation();
	})
	// ==========================
	// 顶部鼠标悬停,显示下拉框
	// ==========================
	$('.ngco-Ojs-Noactive2 ').on('click', function(event) {
		$(".ngco-Ojs-Noactive2 ").removeClass('am-active');
	});
	$('#nghe-Ojs-hover li').hover(function() {
		$(this).find(".hide_box").show();
	}, function() {
		$(this).find(".hide_box").hide();
	})
	//当鼠标移到隐藏区域时，所触发的事件
	$('#nghe-Ojs-hover li .hide_box').hover(function() {
		$(this).show();
	}, function() {
		$(this).hide();
	})
	// ==========================
	// 左侧导航下拉框
	// ==========================
	$('.tpl-left-nav-link-list').on('click', function() {
		$(this).siblings('.tpl-left-nav-sub-menu').slideToggle(80).end().find('.tpl-left-nav-more-ico').toggleClass('tpl-left-nav-more-ico-rotate');
	})
	// ==========================
	// 左侧导航菜单隐藏/开关
	// ==========================
	$('.ngcom-Ljs-change').on("click", function() {
		$('.tpl-left-nav').toggle();
		let content=$('.tpl-left-nav').siblings('.tpl-content-wrapper')
		if($('.tpl-left-nav').is(':hidden')){
			content.addClass('left-nav-close')
		}else{
			content.removeClass('left-nav-close')
		}
	})
})