//=== viewid:dh_style_36_1623725849316 ===//

/*pc,手机显示隐藏*/
function is_mobile(){
	return window.screen.width<767 || ($('body').width() > 0 && $('body').width() < 767);
}
var is_mobile_boolean = is_mobile();
$(function(){
    /*pc,手机显示隐藏*/
    
})


//=== viewid:dh_style_36_1623725849316 ===//

function navSwtich(obj) {
	$(obj).siblings(".menuUlCopy").slideToggle(200);
	$(obj).toggleClass('ontoggle');
	$(obj).parent().siblings().find(".menuUlCopy").slideUp(200);
	$(obj).parent().siblings().find(".fa-angle-down").removeClass('ontoggle');
}
function subLeft_dh_style_36_1623725849316(){
	$("#dh_style_36_1623725849316 .menuUl>li").each(function(){
		$(this).find(".menuUl03").css("left",'100%');
	})
}
$(window).resize(function() {
	subLeft_dh_style_36_1623725849316();
})
$(function(){
    
	$("#dh_style_36_1623725849316 .fa-navicon").click(function(){
        $("#dh_style_36_1623725849316").addClass('clearTransform');
		$("#dh_style_36_1623725849316 .menuUlCopy").each(function(){
			$(this).siblings(".fa").show();
		})
	})
	subLeft_dh_style_36_1623725849316();
		$("#dh_style_36_1623725849316 .subBox").css("top",$("#dh_style_36_1623725849316 .menuUl_box").height());
		
	if($("#dh_style_36_1623725849316 .menuUl").hasClass("noHover")){
		var tabNum = 0;
		$("#dh_style_36_1623725849316 .menuUl>li").find(".Onsub").each(function(){
			tabNum += 1;
			$(this).parent().attr("tabNum",tabNum)
		})
		$("#dh_style_36_1623725849316 .menuUl>li .Onsub").mouseover(function(){
			$("#dh_style_36_1623725849316 .subBox").show();
			var index = $(this).parent().attr("tabNum");
			$("#dh_style_36_1623725849316 .subBox .subItems").eq(index-1).fadeIn(100).siblings().hide();
							$("#dh_style_36_1623725849316 .subBox .subMenuImgArea .subMenuImgCon").eq(0).fadeIn(100).siblings().hide();
					})
						$("#dh_style_36_1623725849316 .subBox").mouseleave(function(){
			$(this).hide();
		});
		$("#dh_style_36_1623725849316 .menuUl>li .Nosub").mouseover(function(){
			$("#dh_style_36_1623725849316 .subBox").hide();
		})
		
		//风格41 42
					
		
		
	}
})
	var color = $('#dh_style_36_1623725849316 .menuStyle_28 .menuUl02 .subMenu02').css('background-color');
	$('#dh_style_36_1623725849316 .menuStyle_28').append(`<style>#dh_style_36_1623725849316 .menuStyle_28 .menuUl .rflex .menuUl02::before{border-bottom-color:${color}!important;}</style>`);
	$('#dh_style_36_1623725849316 .menuStyle_28 .menuUl02 .subMenu02').mouseover(function(){
		let that = $(this);
		setTimeout(function(){
			var hoverColor = that.css('background-color');
			$('#dh_style_36_1623725849316 .menuStyle_28').append(`<style>#dh_style_36_1623725849316 .menuStyle_28 .menuUl02 .arrow:hover::before{border-left-color:${hoverColor}!important;}</style>`);
		},100);
	});


//=== viewid:customForm_style_button_01_1253505854317 ===//
function btnTop(){$("html,body").animate({scrollTop:"0px"},1000);}function btnBottom(){var bodyH = $("html,body").height();$("html,body").animate({scrollTop:bodyH},1000);}

//=== viewid:customForm_style_button_01_1253505854317 ===//

    if(typeof showcart !== 'function'){
        function showcart(){
            var langid = 0;
            if (langid==0 && BodyIsFt) langid = 1;
            if(window.screen.width<767 || ($('body').width() > 0 && $('body').width() < 767)){
                location.href = "https://box6js.nicebox.cn/exusers/u_cart.php?idweb=68535&act=show&lang="+langid+"&ismobile=1";
            }else{
                document.getElementById("boxName").innerHTML="";
                if(document.getElementById("boxClose")) document.getElementById("boxClose").innerHTML="×";
                document.getElementById("showiframe").src="https://box6js.nicebox.cn/exusers/u_cart.php?idweb=68535&act=show&lang="+langid+"&v=9";
                box.Show({width:'1000px', height:'600px'});
            }
        }
    }



//=== viewid:banner_style_01_1253505069495 ===//

        

//=== viewid:banner_style_01_1253505069495 ===//

$(document).ready(function(){
	arrowShow();
	$(window).resize(function(){
		arrowShow();
	});
	// 箭头显示
	function arrowShow(){
		if(window.screen.width<767 || ($('body').width() > 0 && $('body').width() < 767) || navigator.userAgent.indexOf('Mac OS X') != -1){
			$("#banner_style_01_1253505069495 .bannerStyle_1 .awesome-font").show().siblings().hide();
		}else{
			$("#banner_style_01_1253505069495 .bannerStyle_1 .awesome-font").hide().siblings().show();
		}
	}
	
});


//=== viewid:banner_style_01_1253505069495 ===//


    /*
     * Banner 轮播图类
     */
	var intervaltimer;
    function Banner(config) {
        this._default = {
            'list':[],
            'length':0,
            'current':0,
            'timer':undefined,      // 计时器
            'view':undefined,           // 视图
            'flick':undefined,      // 圆点选择器
            'duration':3,               // 切换时间间隔
            'animation':0.5         // 动画时间
        };
        config = $.extend(true, this._default, config);
        this.config = config;
        this.init(config);
    }
    Banner.prototype.init = function(config) {
        this.animateStyle = 'normal';       // 动画效果 ( 根据动画效果, 不同的方法有不同的实现 )
        this.direction = 'right';   // 当前滚动方向
        this.view = this.config.view;
        this.config.length = this.config.list.length;
        this.config.flick = this.view ? this.view.find(".bannerStyle_1 .flicking_con > a") : undefined;
    };
    // 计算下一个要显示的图片的索引
    // by: 如果没有传入参数, 则使用配置中的数据this.config.current, 否则使用传入的参数
    Banner.prototype.nextIndex = function(by) {
        by === undefined && (by = this.config.current);
        var next = this.direction == 'right' ? by + 1 : by - 1;
        next >= this.config.length && (next = 0);
        next < 0 && (next = this.config.length - 1);
        return next;
    };
    //图片链接
    $url_html = new Array();
    $i = 0;
    $url_len = 3;
            $url_html[0] = "http://www.mkkqn.com/blcjqlm.html";
            $url_html[1] = "http://www.mkkqn.com/hdcjqlml.html";
            $url_html[2] = "http://www.mkkqn.com/lmcjqlm.html";
     

    $('#banner_style_01_1253505069495 a.img_url').attr('href',$url_html[$i]);
    // 跳到指定图片
    Banner.prototype.animateIndex = function(index) {
        this.endAnimate();
        if(index >= 0 && index < this.config.length && this.config.current != index) {
            if(this.config.current < index) {
                this.direction = 'right';
                this.config.current = index - 1;
            } else {
                this.direction = 'left';
                this.config.current = index + 1;
            }
            
            this.showIndex(this.config.current);
            this.startAnimate();
        }
    };
    // 向右动画
    Banner.prototype.startAnimateRight = function() {
        this.direction = 'right';
        this.startAnimate();
    };
    // 向左动画
    Banner.prototype.startAnimateLeft = function() {
        this.direction = 'left';
        this.startAnimate();
    };
    // 结束动画
    Banner.prototype.endAnimate = function() {
			clearTimeout(this.config.timer);
    };
	// 结束动画
	Banner.prototype.hoverEndAnimate = function() {
			var that = this;
			intervaltimer = setInterval(function(){
				clearTimeout(that.config.timer);
			},100);
	};
    Banner.prototype.startAnimate = function() {
        switch(this.animateStyle) {
            case 'normal':
                // 默认效果
                this.endAnimate();
                if(this.config.length > 1) {
                    var prev = this.config.current, next = this.nextIndex(),
                            end = this.direction == 'right' ? {prev:"-100%", current:"100%"} : {prev:"100%", current:"-100%"};  // 前一个图片和当前图片的最后停留位置
                    this.config.flick.eq(next).addClass("on").siblings().removeClass("on");
                    // 执行动画
                    var banner = this;
                    this.imgs.eq(prev).stop().animate({"left":end.prev}, this.config.animation, function(){
                        banner.config.timer = setTimeout(function(){
                            banner.startAnimate();
                        },banner.config.duration);
                    });
                    this.imgs.eq(next).css({"left":end.current}).stop().animate({"left":"0%"}, this.config.animation);
                    this.config.current = next;
                }
                break;

            case 'rotate-3d':
                // 3D旋转效果
                this.endAnimate();
                this.updateBgImg();
                if(this.config.length > 1) {
                    var prev = this.config.current, next = this.nextIndex();
                    this.config.flick.eq(next).addClass("on").siblings().removeClass("on");
                    this.config.current = next;
                    this.parts.css("transform", "rotateX(" + ((this.direction == 'right' ? ++this.rotate : --this.rotate) * 90) + "deg)");
                    var banner = this;
                    this.config.timer = setTimeout(function(){
                        banner.startAnimate();
                    },banner.config.duration);
                }
                $('#banner_style_01_1253505069495 a.img_url').attr('href',$url_html[this.config.current]);
                break;
        }
    };
    // 指定显示的图片
    Banner.prototype.showIndex = function(index) {
        switch(this.animateStyle) {
            case 'normal':
                // 默认效果
                this.imgs.eq(index).css("left","0%").siblings(".img-item").css("left","100%");
                this.config.flick.eq(index).addClass("on").siblings().removeClass("on");
                break;
            case 'rotate-3d':
                // 3D旋转效果
                this.updateFaceBottonTopImg(index);
                this.config.flick.eq(index).addClass("on").siblings().removeClass("on");
                break;
        }
    };

    /*
     * ********************************************
     * 3D旋转效果 特有函数 begin
     */
    // 每次旋转前都需要更新背部的图片
    Banner.prototype.updateBgImg = function() {
        // 计算背部要显示的图片
        var bg_image_index = this.nextIndex(this.nextIndex());
        // index: 计算背景图片当前显示在哪个img中( 总共有4个图片, 分别位于正面/底部/背部/顶部, 索引分别为0, 1, 2, 3 )
        var c, index = (c = (this.rotate + 2) % 4) >= 0 ? c : c + 4;
        var banner = this;
        // console.log('第',index,'个面-使用更新为第',bg_image_index,'张图');
        this.parts && this.parts.each(function () {
            $(this).find('.img:eq('+index+')').css({'background-image': 'url("'+banner.config.list[bg_image_index]+'")'});

        });
    };
    // 更新正面/顶部/底部的图片
    // index: 要显示哪张图片
    // 备注: 因为总共有四个面的图片需要更新, 初始化时, 正面/顶部/底部的图片只需更新一次即可 (背部的图片在每次旋转前都需要更新)
    Banner.prototype.updateFaceBottonTopImg = function(index) {
        // face, bottom, top: 计算正面/顶部/底部图片当前显示在哪个img中( 总共有4个图片, 分别位于正面/底部/背部/顶部, 索引分别为0, 1, 2, 3 )
        var c, face = (c = this.rotate % 4) >= 0 ? c : c + 4, bottom, top;
        bottom = face + 1; bottom >= this.config.length && (bottom = 0);
        top = face - 1; top < 0 && (top = this.config.length - 1);
        var banner = this;
        this.parts && this.parts.each(function () {
            // console.log('第',face,'个面-使用更新为第',index,'张图');
            $(this).find('.img:eq('+face+')').css({'background-image': 'url("'+banner.config.list[index]+'")'});
            // console.log('第',bottom,'个面-使用更新为第',index < banner.config.length - 1 ? index + 1 : 0,'张图');
            $(this).find('.img:eq('+bottom+')').css({'background-image': 'url("'+banner.config.list[index < banner.config.length - 1 ? index + 1 : 0]+'")'});
            // console.log('第',top,'个面-使用更新为第',index > 0 ? index - 1 : banner.config.length - 1,'张图');
            $(this).find('.img:eq('+top+')').css({'background-image': 'url("'+banner.config.list[index > 0 ? index - 1 : banner.config.length - 1]+'")'});
        });
    };
    // 初始化旋转部分: 设置3d旋转的四个面的图片, index表示默认显示哪张图片
    Banner.prototype.initImgPart = function(index) {
        var banner = this;
        this.parts && this.parts.each(function () {
            $(this).find('.img').each(function (i) {
                var j = 0;
                switch (i) {
                    case 0: j = index; break;   // 正面
                    case 1: j = index + 1; break;   // 底部
                    case 2: break;  // 背部
                    case 3: j = index - 1; break;   // 顶部
                }
                j >= banner.config.length && (j = 0);
                j < 0 && (j = banner.config.length - 1);
                $(this).css({'background-image': 'url("'+banner.config.list[j]+'")', 'background-repeat':'no-repeat', 'background-color':'#fff'});
            });
        });
    };
    // 更新旋转部分: 之所以使用定时器, 是因为无法实时获取模块宽度
    Banner.prototype.updateImgPart = function() {
        this.parts && this.parts.each(function(index) {
            $(this).css({
                "left":$(this).width() * index + "px"
            });
            $(this).find(".img").css({
                "background-position": -$(this).width() * index + "px"
            });
        });
        var banner = this;
        setTimeout(function () {
            banner.updateImgPart();
        }, 800);
    };
    /*
     * 3D旋转效果 特有函数 end
     * ********************************************
     */

    // 图片数据
    var list_banner_style_01_1253505069495 = [];
    list_banner_style_01_1253505069495.push('/userimg/68535/20180927115742866.jpg');list_banner_style_01_1253505069495.push('/userimg/68535/20180927115757544.jpg');list_banner_style_01_1253505069495.push('/userimg/68535/1500.jpg');
    var banner_banner_style_01_1253505069495;        // 轮播图对象
    $(function(){
        // 创建轮播图
        $arrHref = new Array();
        banner_banner_style_01_1253505069495 = new Banner({
            'list':list_banner_style_01_1253505069495,
            'view':$('#banner_style_01_1253505069495'),
            'duration':parseFloat('2.5') * 1000,
            'animation':parseFloat('0.5') * 1000
        });
                banner_banner_style_01_1253505069495.animateStyle = 'normal';
        banner_banner_style_01_1253505069495.imgs = banner_banner_style_01_1253505069495.view.find(".bannerStyle_1 .main_image .img-list").children(".img-item");
        banner_banner_style_01_1253505069495.view.find('a').each(function (i) {
            $(this).click(function () {
                if(!$(this).attr('href')) {
                    return false;
                }
            });
           
        });
        banner_banner_style_01_1253505069495.view.find('a.picSet').each(function(i){
             $arrHref[i] = $(this).attr('href');
        });
                
        // 显示指定索引的图片
        banner_banner_style_01_1253505069495.showIndex(banner_banner_style_01_1253505069495.config.current);


        // 监听 点击圆点
        banner_banner_style_01_1253505069495.config.flick.click(function(){
            banner_banner_style_01_1253505069495.animateIndex($(this).index());
            $('#banner_style_01_1253505069495 a.img_url').attr('href',$url_html[$(this).index()]);
            $i = $(this).index();
            return false;
        });

        // 监听 鼠标悬浮时
        banner_banner_style_01_1253505069495.view.hover(
                function(){
                    banner_banner_style_01_1253505069495.hoverEndAnimate();
                    banner_banner_style_01_1253505069495.view.find(".bannerStyle_1 .btn_prev, .bannerStyle_1 .btn_next").fadeIn();
                },
                function(){
						clearInterval(intervaltimer);
                    banner_banner_style_01_1253505069495.config.timer = setTimeout(function(){
                        banner_banner_style_01_1253505069495.startAnimateRight();
                    },banner_banner_style_01_1253505069495.config.duration);
                    banner_banner_style_01_1253505069495.view.find(".bannerStyle_1 .btn_prev, .bannerStyle_1 .btn_next").fadeOut()
                }
        );
	  

        // 监听 点击左右按钮
        banner_banner_style_01_1253505069495.view.find(".btn_prev").click(function() {
            banner_banner_style_01_1253505069495.startAnimateLeft();
        });
        banner_banner_style_01_1253505069495.view.find(".btn_next").click(function() {
            banner_banner_style_01_1253505069495.startAnimateRight();
        });

        // 监听 触摸事件
        var touchVal = null;
        document.addEventListener("touchstart", function(e){
            if($(e.target).is(banner_banner_style_01_1253505069495.view) || $(e.target).closest("#"+banner_banner_style_01_1253505069495.view.attr("id")).length > 0) {
                touchVal = {};
                touchVal.downX = e.touches[0].clientX;  // 记录触摸起始位置
            }
        }, false);
        document.addEventListener("touchmove", function(e){
            if(touchVal && touchVal.downX) {
                touchVal.moveX = e.touches[0].clientX - touchVal.downX;     // 计算触摸中的偏移位置
            }
        }, false);
        document.addEventListener("touchend", function(e){
            if(touchVal && touchVal.moveX){
                if(touchVal.moveX > 30){
                    banner_banner_style_01_1253505069495.startAnimateLeft();             // 触摸生效
                    if (e.preventDefault) {
                        e.preventDefault();
                    } else {
                        e.returnvalue = false;
                    }
                }else if(touchVal.moveX < -30){
                    banner_banner_style_01_1253505069495.startAnimateRight();                // 触摸生效
                    if (e.preventDefault) {
                        e.preventDefault();
                    } else {
                        e.returnvalue = false;
                    }
                }
            }
            touchVal = null;
        }, false);

       
        // 运行
        banner_banner_style_01_1253505069495.config.timer = setTimeout(function(){
            banner_banner_style_01_1253505069495.startAnimateRight();
        }, banner_banner_style_01_1253505069495.config.duration);
    });


//=== viewid:homelink_style_01_1520394971044,homelink_style_01_1542956011504,homelink_style_01_1499417099518,homelink_style_01_1542018853909,homelink_style_01_1499680119210,homelink_style_01_1520414024912 ===//

    

//=== viewid:dh_style_menu2_02_1532674848909,dh_style_menu2_02_1542956095279,dh_style_menu2_02_1536223329699,dh_style_menu2_02_1542018900994,dh_style_menu2_02_1532674316047 ===//

        
    // 风格style_menu2_03 交互
    

//=== viewid:qqol_style_01_1520997779006 ===//

/*
 * ***************************************************************
 * 片段列表类
 */
function FragmentList(config) {
    this._default = {
        'prefix':'fragment-',
        'css':{}
    };
    config = $.extend(true, this._default, config);
    this.config = config;
    this.list = [];
    this.object = $('<div></div>');
    // 执行配置
    this.init(config);
}
/*
 * 初始化
 */
FragmentList.prototype.init = function(config) {
    config.css && this.object.css(config.css);
};
/*
 * 添加
 */
FragmentList.prototype.append = function (fragment) {
    this.list.push(fragment);
};
/*
 * 获取jquery对象
 */
FragmentList.prototype.get = function () {
    this.object.addClass(this.config.prefix + 'list').children().remove();
    for(var i = 0, len = this.list.length, html = ''; i < len; ++i) {
        html += this.list[i].html();
    }
    return this.object.html(html);
};
/*
 * 输出
 */
FragmentList.prototype.html = function () {
    return this.get().prop('outerHTML');
};

/*
 * ***************************************************************
 * 片段类
 */
Fragment.prototype.prefix = 'fragment-';
function Fragment(config) {
    (!config.init || Util.prototype.type(config.init) != 'function') && (config.init = function () {});
    !config.html && (config.html = '<div></div>');
    this._default = {
        'name':'item'
    };
    config = $.extend(true, this._default, config);
    // 创建jquery对象
    config.data && (config.html = Util.prototype.replace(config.html, Util.prototype.toArray(config.data)));
    this.object = $(config.html).addClass((config.name != 'item' ? this.prefix + 'item': '') + ' ' + this.prefix + config.name);
    config.init(this.object);
    delete config.html; // jquery对象创建后, config.html 不再使用
    this.config = config;
    // 执行配置
    this.init(config);
}
/*
 * 复制
 */
Fragment.prototype.clone = function () {
    return new Fragment($.extend(true, {}, this.config));
};
/*
 * 初始化
 */
Fragment.prototype.init = function(config) {
    config.css && this.object.css(config.css);
};
/*
 * 修改样式
 */
Fragment.prototype.css = function(css) {
    css && this.object.css(css);
    return this;
};
/*
 * 输出
 */
Fragment.prototype.html = function () {
    return this.object.prop('outerHTML');
};
/*
 * 使用指定数据更新自己
 */
Fragment.prototype.data = function (data) {
    this.object.html(Util.prototype.replace(this.html(), Util.prototype.toArray(data)));
    return this;
};

/*
 * ***************************************************************
 * 边栏类
 */
function Sidebar(config) {
    this._default = {
        // 默认配置, 常量, 不应该修改, 对象初始化时可覆盖
        'template':'sidebar',
        'expand':true,    // 默认展开还是隐藏
        'css':undefined,
        'main':{'width':'120px', 'position':'right'},
        'border':{'width':'1px', 'color':'#ccc', 'radius':'2px'},
        'button':{'width':'26px', 'color':'#333', 'font-size':'12px', 'background-color':'#ececec', 'radius':'5px'},
        'close':{'hide':false, 'height':'25px', 'font-size':'12px', 'padding':'0 .6em 0 .3em'},
        'show':{'start':undefined, 'end':undefined},   // 显示开始和结束时要执行的函数
        'end':{'start':undefined, 'end':undefined}   // 隐藏开始和结束时要执行的函数
    };
    config = $.extend(true, this._default, config);
    this.config = config;
    // dom 结构
    var temp = $('.'+config.template+':first');
    temp.hide();
    this.main = temp.clone().removeClass(config.template).show();
    this.main.data('instance', this);    // dom 结构的 data 中保存类对象
    config.css && this.main.addClass(config.css);
    // 主要属性
    this.width = config.main.width;
    this.position = config.main.position;
    this.main.addClass(this.position);
    this.position_rev = this.position == 'right' ? 'left' : 'right';
    this.wrapper = this.main.children('.wrapper');
    this._close = this.wrapper.children('.close');
    this.button = this.main.children('.button');
    // 子元素的 dom 结构的 data 中保存类对象
    this._close.data('parent', this);
    this.button.data('parent', this);
    // 执行配置
    this.init(config);
}
/*
 * 初始化
 */
Sidebar.prototype.init = function(config) {
    this.initMain();
    this.initWrapper(config);
    this.initButton(config);
    // 垂直居中后, 移动到body最后
    this.verticalCenter().appendTo('body');
    config.expand ? this.show(false) : this.hide(false);
    this.main.show();
    // 存储所有的对象到window中 (后期会使用)
    !window.online_service_list && (window.online_service_list = []);
    window.online_service_list.push(this);
    $(window).resize(this.onWindowResize);
};
/*
 * 初始化 - main
 */
Sidebar.prototype.initMain = function() {
    this.main.hide().css({
        'height':'auto',
        'position':'fixed',
        'z-index':'100000000',
        'top':'0px',
        'width':this.width
    });
    this.main.css(this.position, '0px');
    // 移入移出时
    this.main.hover(
        function () {
            $(this).data('instance').show();
        },
        function () {
            if(!$(this).hasClass('animate-showing')) {
                $(this).data('instance').hide();
            }
        }
    );
};
/*
 * 初始化 - wrapper
 */
Sidebar.prototype.initWrapper = function(config) {
    this.wrapper.css({
        'border': config.border.width +' solid ' + config.border.color,
        'border-radius':config.border.radius,
        '-moz-border-radius':config.border.radius
    });
    this._close.css({
        'display':config.close.hide ? 'none' : 'block',
        'position':'absolute',
        'top':'0px',
        'right':'0px',
        'height':config.close.height,
        'line-height':config.close.height,
        'font-size':config.close['font-size'],
        'padding':config.close.padding,
        'cursor':'pointer'
    }).click(function () {
        var instance = $(this).data('parent');
        Sidebar.prototype.hide.call(instance);
        if(typeof($("img").lazyload)=="function"){
            //异步加载图片
            setTimeout(function(){
                $("img").lazyload({effect: "fadeIn",threshold:0,failure_limit:20,skip_invisible:false});
            },500);
            
        }
    }).attr({'onselectstart':'return false', 'unselectable':'on'});   // [兼容]禁止选择文本
};
/*
 * 隐藏Sidebar
 * animate: 是否带动画
 */
Sidebar.prototype.hide = function (animate) {
    animate === undefined && (animate = true);
    var instance = this, width = '-'+this.width, end = this.position == 'right' ? {right :width} : {left :width},
        btn_width = '-'+instance.config.button.width, btn_end = instance.position == 'right' ? {left :btn_width} : {right :btn_width};
    instance.onHide('start');
    if(animate) {
        instance.main.animate(end, 'fast', function() {
            instance.button.show().animate(btn_end, 'fast');
            instance.onHide('end');
        });
    } else {
        instance.main.css(end);
        instance.button.show().css(btn_end);
        instance.onHide('end');
    }
};
/*
 * 隐藏Sidebar开始和结束时
 */
Sidebar.prototype.onHide = function (status) {
    var func;
    if(this.config.hide) {
        switch(status) {
            case 'start':
                Util.prototype.type(func = this.config.hide.start) == 'function' && func();  // 执行自定义函数
                break;
            case 'end':
                Util.prototype.type(func = this.config.hide.end) == 'function' && func();  // 执行自定义函数
                break;
        }
    }
};
/*
 * 初始化 - button
 */
Sidebar.prototype.initButton = function(config) {
    var width = config.button.width;
    this.button.hide().css({
        'position':'absolute',
        'top':'0%',
        'width':width,
        'line-height':'1.35em',
        'padding':'.5em 0',
        'font-size':config.close['font-size'],
        'color':config.button.color,
        'background-color':config.button['background-color'],
        'cursor':'pointer',
        'word-wrap':'break-word',
        'word-break':'break-all'
    });
    var radius = config.button.radius;
    if(this.position == 'right') {
        this.button.css({
            'border-top-left-radius':radius,
            'border-bottom-left-radius':radius
        });
    } else {
        this.button.css({
            'border-top-right-radius':radius,
            'border-bottom-right-radius':radius
        });
    }
    this.button.css(this.position_rev, '0px');
    // 点击时
    this.button.click(function () {
        var instance = $(this).data('parent');
        Sidebar.prototype.show.call(instance);
    }).attr({'onselectstart':'return false', 'unselectable':'on'});   // [兼容]禁止选择文本
};
/*
 * 显示Sidebar
 * animate: 是否带动画
 */
Sidebar.prototype.show = function (animate) {
    animate === undefined && (animate = true);
    var instance = this, end = instance.position == 'right' ? {right :0} : {left :0};
    instance.onShow('start');
    if(animate) {
        instance.onAnimate('showing');
        instance.main.animate(end, 'fast', function() {
            instance.onAnimate();
            instance.button.hide(); // Bug修复: 额外隐藏一次
            instance.onShow('end');
        });
    } else {
        instance.main.css(end);
        instance.onShow('end');
    }
    // 显示开始后, 不管是否有动画, 按钮应该马上隐藏
    instance.button.hide();
    instance.button.css(instance.position_rev,'0px');
};
/*
 * 显示Sidebar开始和结束时
 */
Sidebar.prototype.onShow = function (status) {
    var func;
    if(this.config.show) {
        switch (status) {
            case 'start':
                Util.prototype.type(func = this.config.show.start) == 'function' && func();  // 执行自定义函数
                break;
            case 'end':
                Util.prototype.type(func = this.config.show.end) == 'function' && func();  // 执行自定义函数
                break;
        }
    }
};
/*
 * 设置实时动画状态
 * status: 为空时表示动画结束
 */
Sidebar.prototype.onAnimate = function(status) {
    Util.prototype.removeClass(this.main, 'animate-');
    status && this.main.addClass('animate-'+status);
};
/*
 * 窗口大小改变时
 */
Sidebar.prototype.onWindowResize = function() {
    for(var i = 0, len = window.online_service_list.length; i < len; ++i) {
        window.online_service_list[i].verticalCenter();
    }
};
/*
 * 在窗口垂直居中
 */
Sidebar.prototype.verticalCenter = function() {
    var h1 = this.main.height(), h2 =$(window).height();
    if(h1 && h2) {
        this.main.css('top', ((h2 - h1) / 2) + 'px');
    }
    return this.main;
};
/*
 * 添加内容
 */
Sidebar.prototype.append = function(obj) {
    this.wrapper.append(obj);
    this.verticalCenter();
};

/*
 * ***************************************************************
 * 工具类
 */
function Util() {
}
/*
 * 返回对象类型
 */
Util.prototype.type = function(obj) {
    var type = obj === undefined ? 'undefined' : (obj === null ? 'null' : undefined);   // 兼容旧版js解析器
    return type ? type : Object.prototype.toString.call(obj).slice(8, -1).toLowerCase();
};
/*
 * 检测对象类型
 */
Util.prototype.is = function(obj, type) {
    var cls = this.type(obj);
    return obj !== undefined && obj !== null && cls.toLowerCase() === type.toLowerCase();
};
/*
 * 属性扩展( 增强版 )
 * 注意: 一般深度复制, 可直接使用 $.extend(true, target, source)
 */
Util.prototype.extend = function(target, source, is_deep, is_add) {
    is_deep === undefined && (is_deep = true);   // 如果值也是对象, 是否对值也调用extend
    is_add === undefined && (is_add = true);     // 如果目标对象中没有源对象的键, 是否允许新增键值
    for (var p in source) {
        if (source.hasOwnProperty(p) && (is_add || target.hasOwnProperty(p))) {
            // 执行extend
            if(is_deep && this.is(target[p], 'object') && this.is(source[p], 'object')) {
                this.extend(target[p], source[p]);
            } else {
                target[p] = source[p];
            }
        }
    }
    return target;
};
/*
 * 删除class( 删除指定名称的class和所有以指定名称开头的class )
 */
Util.prototype.removeClass = function(obj, rm) {
    obj.attr('class', function () {
        var regExp = new RegExp(rm + '\\S*', 'g');
        return Util.prototype.clear($(this).attr('class').replace(regExp, ''));
    });
    return obj;
};
/*
 * 删除前后空白
 */
Util.prototype.trim = function(s){
    return s.replace(/(^\s*)|(\s*$)/g,'');
};
/*
 * 合并中间多个空白为一个
 */
Util.prototype.clear = function(s){
    return s.replace(/(^\s*)|(\s*$)|(\s{2,})/g,'');
};
/*
 * 对象转数组
 */
Util.prototype.toArray = function(obj) {
    var array = [], p, item;
    for (p in obj) {
        if (obj.hasOwnProperty(p)) {
            item = [p];
            item.push(this.is(obj[p], 'object') ? this.toArray(obj[p]) : obj[p]);
            array.push(item);
        }
    }
    return array;
};
/*
 * 使用指定的键值数组替换一个字符串
 * 备注: 字符串中键以{{}}标记
 * 备注: data: 二维数组, 一维数组的每一项是一个长度为二的内层数组, 内层数组的第一项为键, 第二项为值
 */
Util.prototype.replace = function(s, data) {
    var i, len, reg_str = [], reg;
    for(i = 0, len = data.length; i < len; ++i) {
        reg_str.push('({{' + data[i][0] + '}})');
    }
    // 正则替换
    reg = new RegExp(reg_str.join('|'), 'g');
    return s.replace(reg, replace);
    // 执行替换的函数
    function replace(){
        // arguments 中包含的是: 字符串中当前位置匹配到的字符串, 第0个()匹配到的字符串, ..., 第n-1个()匹配到的字符串, 当前匹配的位置, 整个字符串
        // 从索引为1开始, 第一个不为undefined的项的索引值减一即为匹配到的键的索引
        for(var i = 1, len = arguments.length; i < len; ++i) {
            if(arguments[i] !== undefined) {
                return data[--i][1];
            }
        }
    }
};


//=== viewid:qqol_style_01_1520997779006 ===//

    //购物车
    if(typeof showcart !== 'function'){
        function showcart(){
            var langid = 0;
            if (langid==0 && BodyIsFt) langid = 1;
            if(window.screen.width<767 || ($('body').width() > 0 && $('body').width() < 767)){
            location.href = "//box6js.nicebox.cn/exusers/u_cart.php?idweb=68535&act=show&lang="+langid+"&ismobile=1";
            }else{
            document.getElementById("boxName").innerHTML="查看购物车";
            if(document.getElementById("boxClose")) document.getElementById("boxClose").innerHTML="×"; 
            document.getElementById("showiframe").src="//box6js.nicebox.cn/exusers/u_cart.php?idweb=68535&act=show&lang="+langid+"&v=9";
            box.Show({width:'1000px', height:'600px'});
            }
        }
    }
    //判断是否是手机,用于处理QQ电脑端及手机端链接不一致问题
    var mobile_flag = isMobile();
    if(mobile_flag){
                $('#qqol_style_01_1520997779006 .qq-btn-pc').hide();
        $('#qqol_style_01_1520997779006 .qq-btn-mobile').show();
            }
    function isMobile() {
        var userAgentInfo = navigator.userAgent;
        var mobileAgents = [ "Android", "iPhone", "SymbianOS", "Windows Phone", "iPad","iPod"];
        var mobile_flag = false;
        //根据userAgent判断是否是手机
        for (var v = 0; v < mobileAgents.length; v++) {
            if (userAgentInfo.indexOf(mobileAgents[v]) > 0) {
                mobile_flag = true;
                break;
            }
        }
        var screen_width = window.screen.width;
        var screen_height = window.screen.height;

        //根据屏幕分辨率判断是否是手机
        if(screen_width < 500 && screen_height < 800){
            mobile_flag = true;
        }
        return mobile_flag;
    }


//=== viewid:qqol_style_01_1520997779006 ===//

	function remove_qqol_qqol_style_01_1520997779006(){
		$('body > .online-service.qqol-qqol_style_01_1520997779006').remove();
	}
    // 创建在线客服
    $(function () {
        // 清理旧的
        remove_qqol_qqol_style_01_1520997779006();

        // 创建边栏
        var sidebar = new Sidebar({
            'template': 'online-template',
            'css': 'qqol-qqol_style_01_1520997779006',
            'expand': true,
            'main': {'width':'192px', 'position': 'right'},
            'border': {'color': '#009fe9', 'width': '7px', 'radius': '10px'},
            'button': {'color': '#fff', 'background-color': '#009fe9', 'radius': '5px'},
            'close': {'hide': false}
        });

        // 片段模板
        var qqOnlineStr = '<div class="clearfix">' +
                '<a class="qq-btn qq-btn-pc" target="_blank" href="//wpa.qq.com/msgrd?v=3&uin={{qq}}&site=qq&menu=yes">' +
                '<img border="0" src="//box6js.nicebox.cn/images/qq_icon/icon-{{style}}.gif" alt="{{title}}" title="{{title}}">' +
                '{{text}}</a>' +
				'<a class="qq-btn qq-btn-mobile" target="_blank" href="mqqwpa://im/chat?chat_type=wpa&uin={{qq}}&version=1&src_type=web&web_src=oicqzone.com">' +
				'<img border="0" src="//box6js.nicebox.cn/images/qq_icon/icon-{{style}}.gif" alt="{{title}}" title="{{title}}">' +
				'{{text}}</a>' +
				'</div>';	// 图标不能显示时, 更换QQ号码让其显示 

        // 创建片段
        Fragment.prototype.prefix = 'ol-';

        // 创建片段列表
        var fragmentList = new FragmentList({
            'prefix':'ol-',
            'css':{'padding':'0 12px'}
        });
                		fragmentList.append(new Fragment({
                    'name': 'text',
                    'html': '<div>广州隆天环保环保招商加盟运营中心</div>',
                    'css':{'margin':'.5em 0'}
                }));
        	        		fragmentList.append(new Fragment({
                    'name':'separator',
                    'css':{'height':'3px', 'background-color':'#009fe9'}
                }));
        	                fragmentList.append(new Fragment({
                    'name':'qq-online',
                    'html':qqOnlineStr,
                    'data':{'qq':'1507022345', 'style':41, 'title':'在线客服', 'text':''},
                    'css':{'margin':'.5em 0'}
                }));
                    		fragmentList.append(new Fragment({
                    'name':'separator',
                    'css':{'height':'3px', 'background-color':'#009fe9'}
                }));
        	        		fragmentList.append(new Fragment({
                    'name': 'text',
                    'html': '<div>工作时间：</div>',
                    'css':{'margin':'.5em 0'}
                }));
        	        		fragmentList.append(new Fragment({
                    'name': 'text',
                    'html': '<div>09:00-18.00</div>',
                    'css':{'margin':'.5em 0'}
                }));
        	        		fragmentList.append(new Fragment({
                    'name':'separator',
                    'css':{'height':'3px', 'background-color':'#009fe9'}
                }));
        	        		fragmentList.append(new Fragment({
                    'name': 'text',
                    'html': '<div>服务热线：</div>',
                    'css':{'margin':'.5em 0'}
                }));
        	        		fragmentList.append(new Fragment({
                    'name': 'text',
                    'html': '<div>020-31062815</div>',
                    'css':{'margin':'.5em 0'}
                }));
        	        		fragmentList.append(new Fragment({
                    'name': 'text',
                    'html': '<div>检测热线：</div>',
                    'css':{'margin':'.5em 0'}
                }));
        	        		fragmentList.append(new Fragment({
                    'name': 'text',
                    'html': '<div>133-1875-5351</div>',
                    'css':{'margin':'.5em 0'}
                }));
        	        		fragmentList.append(new Fragment({
                    'name': 'text',
                    'html': '<div>联系人：张经理</div>',
                    'css':{'margin':'.5em 0'}
                }));
        	        // 添加到边栏
        var list = fragmentList.get();
        !list.children().length && list.html('<p>内容列表为空！</p>');
        sidebar.append(list);
        if(typeof($("img").lazyload)=="function"){
            $("img").lazyload({effect: "fadeIn",threshold:0,failure_limit:20,skip_invisible:false});
        }
    });
	


//=== viewid:qqol_style_01_1520997779006 ===//

    // 对输入内容中的尖括号、引号等进行转义
    function html_encode(str) {
        var s = "";
        if (str.length == 0) return "";
        s = str.replace(/&/g, "&amp;");
        s = s.replace(/</g, "&lt;");
        s = s.replace(/>/g, "&gt;");
        s = s.replace(/ /g, "&nbsp;");
        s = s.replace(/\'/g, "&#39;");
        s = s.replace(/\"/g, "&quot;");
        s = s.replace(/\n/g, "<br>");
        return s;
    }
    function html_decode(str) {
        var s = "";
        if (str.length == 0) return "";
        s = str.replace(/&amp;/g, "&");
        s = s.replace(/&lt;/g, "<");
        s = s.replace(/&gt;/g, ">");
        s = s.replace(/&nbsp;/g, " ");
        s = s.replace(/&#39;/g, "\'");
        s = s.replace(/&quot;/g, "\"");
        s = s.replace(/<br>/g, "\n");
        return s;
    }



//=== viewid:copyright_style_01_1643013841247 ===//