1289 lines
		
	
	
		
			53 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
			
		
		
	
	
			1289 lines
		
	
	
		
			53 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
document.write("<link href='https://at.alicdn.com/t/font_653600_qa9lwwv74z.css' rel='stylesheet' type='text/css'/>");
 | 
						||
 | 
						||
/*!
 | 
						||
 * JavaScript Cookie v2.2.0
 | 
						||
 * https://github.com/js-cookie/js-cookie
 | 
						||
 *
 | 
						||
 * Copyright 2006, 2015 Klaus Hartl & Fagner Brack
 | 
						||
 * Released under the MIT license
 | 
						||
 */
 | 
						||
!function(e) {
 | 
						||
    var n;
 | 
						||
    if ("function" == typeof define && define.amd && (define(e),
 | 
						||
    n = !0),
 | 
						||
    "object" == typeof exports && (module.exports = e(),
 | 
						||
    n = !0),
 | 
						||
    !n) {
 | 
						||
        var t = window.Cookies
 | 
						||
          , o = window.Cookies = e();
 | 
						||
        o.noConflict = function() {
 | 
						||
            return window.Cookies = t,
 | 
						||
            o
 | 
						||
        }
 | 
						||
    }
 | 
						||
}(function() {
 | 
						||
    function e() {
 | 
						||
        for (var e = 0, n = {}; e < arguments.length; e++) {
 | 
						||
            var t = arguments[e];
 | 
						||
            for (var o in t)
 | 
						||
                n[o] = t[o]
 | 
						||
        }
 | 
						||
        return n
 | 
						||
    }
 | 
						||
    function n(e) {
 | 
						||
        return e.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent)
 | 
						||
    }
 | 
						||
    return function t(o) {
 | 
						||
        function r() {}
 | 
						||
        function i(n, t, i) {
 | 
						||
            if ("undefined" != typeof document) {
 | 
						||
                "number" == typeof (i = e({
 | 
						||
                    path: "/"
 | 
						||
                }, r.defaults, i)).expires && (i.expires = new Date(1 * new Date + 864e5 * i.expires)),
 | 
						||
                i.expires = i.expires ? i.expires.toUTCString() : "";
 | 
						||
                try {
 | 
						||
                    var c = JSON.stringify(t);
 | 
						||
                    /^[\{\[]/.test(c) && (t = c)
 | 
						||
                } catch (e) {}
 | 
						||
                t = o.write ? o.write(t, n) : encodeURIComponent(String(t)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent),
 | 
						||
                n = encodeURIComponent(String(n)).replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent).replace(/[\(\)]/g, escape);
 | 
						||
                var f = "";
 | 
						||
                for (var u in i)
 | 
						||
                    i[u] && (f += "; " + u,
 | 
						||
                    !0 !== i[u] && (f += "=" + i[u].split(";")[0]));
 | 
						||
                return document.cookie = n + "=" + t + f
 | 
						||
            }
 | 
						||
        }
 | 
						||
        function c(e, t) {
 | 
						||
            if ("undefined" != typeof document) {
 | 
						||
                for (var r = {}, i = document.cookie ? document.cookie.split("; ") : [], c = 0; c < i.length; c++) {
 | 
						||
                    var f = i[c].split("=")
 | 
						||
                      , u = f.slice(1).join("=");
 | 
						||
                    t || '"' !== u.charAt(0) || (u = u.slice(1, -1));
 | 
						||
                    try {
 | 
						||
                        var a = n(f[0]);
 | 
						||
                        if (u = (o.read || o)(u, a) || n(u),
 | 
						||
                        t)
 | 
						||
                            try {
 | 
						||
                                u = JSON.parse(u)
 | 
						||
                            } catch (e) {}
 | 
						||
                        if (r[a] = u,
 | 
						||
                        e === a)
 | 
						||
                            break
 | 
						||
                    } catch (e) {}
 | 
						||
                }
 | 
						||
                return e ? r[e] : r
 | 
						||
            }
 | 
						||
        }
 | 
						||
        return r.set = i,
 | 
						||
        r.get = function(e) {
 | 
						||
            return c(e, !1)
 | 
						||
        }
 | 
						||
        ,
 | 
						||
        r.getJSON = function(e) {
 | 
						||
            return c(e, !0)
 | 
						||
        }
 | 
						||
        ,
 | 
						||
        r.remove = function(n, t) {
 | 
						||
            i(n, "", e(t, {
 | 
						||
                expires: -1
 | 
						||
            }))
 | 
						||
        }
 | 
						||
        ,
 | 
						||
        r.defaults = {},
 | 
						||
        r.withConverter = t,
 | 
						||
        r
 | 
						||
    }(function() {})
 | 
						||
});
 | 
						||
 | 
						||
$(function() {
 | 
						||
    var result = location.search.match(/\?search=(\w*)&?/i)
 | 
						||
    if (result && result[1]) {
 | 
						||
        var searchText = result[1]
 | 
						||
        $('#search-input').val(searchText)
 | 
						||
    }
 | 
						||
    // 未报名用户登录时弹框
 | 
						||
    // console.log(Cookies.get('enroll_status'));
 | 
						||
    // if(Cookies.get('enroll_status') == 0){
 | 
						||
    //     Cookies.remove('enroll_status');
 | 
						||
    //     var html='<div class="CompetitionEnrollBox">'+
 | 
						||
    //         '<div class="pr with40">'+
 | 
						||
    //         '<img src="/images/educoder/competition/boxEnroll.png" width="100%"/>'+
 | 
						||
    //         '<a href="javascript:void(0)" class="CloseBox" onclick="CloseBox();"><i class="iconfont icon-roundclose color-grey-c"></i></a>'+
 | 
						||
    //         '<a href="https://www.educoder.net/competitions/gcc-dev-2018/enroll" class="ImmediatelyEnroll">立即报名</a>'+
 | 
						||
    //         '</div></div>';
 | 
						||
    //     $(".newContainer").append(html);
 | 
						||
    // }
 | 
						||
});
 | 
						||
 | 
						||
function CloseBox() {
 | 
						||
    $(".CompetitionEnrollBox").remove();
 | 
						||
}
 | 
						||
 | 
						||
//根据页面大小决定侧边栏的位置
 | 
						||
$(window).resize(function() {
 | 
						||
    rightSlider();
 | 
						||
});
 | 
						||
function rightSlider() {
 | 
						||
    var poi = parseInt((parseInt($(window).width()) - 1200) / 2) - 81;
 | 
						||
    // console.log(parseInt($(window).width())+"  "+poi);
 | 
						||
    if (poi > 0) {
 | 
						||
        $(".-task-sidebar").css("right", poi);
 | 
						||
    } else {
 | 
						||
        $(".-task-sidebar").css("right", "0px");
 | 
						||
    }
 | 
						||
    $(".-task-sidebar").show();
 | 
						||
}
 | 
						||
function open_course(id, allowVisit) {
 | 
						||
    if (allowVisit) {
 | 
						||
        window.open("/courses/" + id);
 | 
						||
    }
 | 
						||
}
 | 
						||
function open_project(id, allowVisit) {
 | 
						||
    if (allowVisit) {
 | 
						||
        window.open("/projects/" + id);
 | 
						||
    }
 | 
						||
}
 | 
						||
 | 
						||
function conver_size(limit) {
 | 
						||
    var size = "";
 | 
						||
    if (limit < 1024) {
 | 
						||
        //如果小于1KB转化成B
 | 
						||
        size = limit.toFixed(2) + "B";
 | 
						||
    } else if (limit < 1024 * 1024) {
 | 
						||
        //如果小于1MB转化成KB
 | 
						||
        size = (limit / 1024).toFixed(2) + "KB";
 | 
						||
    } else if (limit < 1024 * 1024 * 1024) {
 | 
						||
        //如果小于1GB转化成MB
 | 
						||
        size = (limit / (1024 * 1024)).toFixed(2) + "MB";
 | 
						||
    } else {
 | 
						||
        //其他转化成GB
 | 
						||
        size = (limit / (1024 * 1024 * 1024)).toFixed(2) + "GB";
 | 
						||
    }
 | 
						||
 | 
						||
    var sizestr = size + "";
 | 
						||
    var len = sizestr.indexOf("\.");
 | 
						||
    var dec = sizestr.substr(len + 1, 2);
 | 
						||
    if (dec == "00") {
 | 
						||
        //当小数点后为00时 去掉小数部分
 | 
						||
        return sizestr.substring(0, len) + sizestr.substr(len + 3, 2);
 | 
						||
    }
 | 
						||
    return sizestr;
 | 
						||
}
 | 
						||
 | 
						||
function _initSider() {
 | 
						||
    var $descSide = $("<div class='-task-desc'></div>").appendTo("body");
 | 
						||
    $(".-task-sidebar>div").hover(function() {
 | 
						||
        //移入显示二维码
 | 
						||
        if ($(this).hasClass("scan")) {
 | 
						||
            $(".scan_ewm").show().css({
 | 
						||
                right: "75px",
 | 
						||
                opacity: 0
 | 
						||
            }).stop().animate({
 | 
						||
                right: "45px",
 | 
						||
                opacity: 1
 | 
						||
            })
 | 
						||
            return;
 | 
						||
        }
 | 
						||
        var $tool = $(this).attr("tooltips");
 | 
						||
        $descSide.html($tool + "<div><img src='/images/edu_user/jt.png'></div>");
 | 
						||
        $descSide.data('_dom', this)
 | 
						||
        $descSide.show().css({
 | 
						||
            left: $(this).offset().left - $descSide.width() - 30,
 | 
						||
            opacity: 0,
 | 
						||
            top: $(this).offset().top
 | 
						||
        }).stop().animate({
 | 
						||
            left: $(this).offset().left - $descSide.width() - 5,
 | 
						||
            opacity: 1
 | 
						||
        }, 400);
 | 
						||
    }, function() {
 | 
						||
        if ($(this).hasClass("scan")) {
 | 
						||
            $(".scan_ewm").stop().animate({
 | 
						||
                right: "75px",
 | 
						||
                opacity: 0
 | 
						||
            }, 200).hide();
 | 
						||
        }
 | 
						||
        $descSide.stop().animate({
 | 
						||
            left: $(this).offset().left - $descSide.width() - 30,
 | 
						||
            opacity: 0
 | 
						||
        }, 200).hide();
 | 
						||
    });
 | 
						||
    rightSlider();
 | 
						||
 | 
						||
    $(window).scroll(function() {
 | 
						||
        if ($descSide.height()) {
 | 
						||
            var hoverIcon = $descSide.data('_dom')
 | 
						||
            $descSide.css('top', $(hoverIcon).offset().top)
 | 
						||
        }
 | 
						||
    })
 | 
						||
}
 | 
						||
$(function() {
 | 
						||
    // loadHeader();
 | 
						||
    _initSider();
 | 
						||
 | 
						||
    $(window).scroll(function() {
 | 
						||
        if ($(".gotop").length > 0) {
 | 
						||
            if ($(document).scrollTop() > 0) {
 | 
						||
                $(".-task-sidebar .gotop").show();
 | 
						||
                $(".gotop").click(function() {
 | 
						||
                    $("html,body").scrollTop(0);
 | 
						||
                });
 | 
						||
            }
 | 
						||
            if ($(document).scrollTop() == 0) {
 | 
						||
                $(".-task-sidebar .gotop").hide();
 | 
						||
            }
 | 
						||
        }
 | 
						||
    });
 | 
						||
 | 
						||
    // 翻页的GO
 | 
						||
    $(".page_GO").live("keydown", function(event) {
 | 
						||
        var code;
 | 
						||
        if (!event) {
 | 
						||
            event = window.event;
 | 
						||
            //针对ie浏览器
 | 
						||
            code = event.keyCode;
 | 
						||
        } else {
 | 
						||
            code = event.keyCode;
 | 
						||
        }
 | 
						||
        if (code == 13) {
 | 
						||
            var prev = $(this).prev().find("a").html().trim();
 | 
						||
            var page = $(this).val().trim();
 | 
						||
            if (parseInt(prev) >= parseInt(page)) {
 | 
						||
                if (typeof ($(this).prev().children("a").attr("href")) == "undefined") {
 | 
						||
                    var href = $(this).parent().find("li:first-child").children("a").attr("href");
 | 
						||
                } else {
 | 
						||
                    var href = $(this).prev().children("a").attr("href");
 | 
						||
                }
 | 
						||
                var new_href = href.replace(/page=(\d*)/, 'page=' + page);
 | 
						||
                console.log(new_href);
 | 
						||
                $.get(new_href);
 | 
						||
                return false;
 | 
						||
            }
 | 
						||
        }
 | 
						||
    });
 | 
						||
 | 
						||
    // 试用申请弹框
 | 
						||
    $("#apply_trail_submit_btn").live('click', function() {
 | 
						||
        if ($("#apply_reason").val().trim() == "") {
 | 
						||
            $("#hint_message").show();
 | 
						||
        } else {
 | 
						||
            $("#hint_message").hide();
 | 
						||
            $("#apply_trail_form").submit();
 | 
						||
            hideModal();
 | 
						||
        }
 | 
						||
    });
 | 
						||
 | 
						||
});
 | 
						||
 | 
						||
// editor 存在了jquery对象上,应用不需要自己写md_rec_data方法了
 | 
						||
function md_rec_data(k, mdu, id) {
 | 
						||
    if (window.sessionStorage.getItem(k + mdu) !== null) {
 | 
						||
        editor = $("#e_tips_" + id).data('editor');
 | 
						||
        editor.setValue(window.sessionStorage.getItem(k + mdu));
 | 
						||
 | 
						||
        md_clear_data(k, mdu, id);
 | 
						||
    }
 | 
						||
}
 | 
						||
// markdown的自动保存
 | 
						||
function md_elocalStorage(editor, mdu, id) {
 | 
						||
    if (window.sessionStorage) {
 | 
						||
        var oc = window.sessionStorage.getItem('content' + mdu);
 | 
						||
        if (oc !== null) {
 | 
						||
            $("#e_tips_" + id).data('editor', editor);
 | 
						||
            var h = '您上次有已保存的数据,是否<a style="cursor: pointer;" class="link-color-blue" onclick="md_rec_data(\'content\',\'' + mdu + '\',\'' + id + '\')">恢复</a> ? / <a style="cursor: pointer;" class="link-color-blue" onclick="md_clear_data(\'content\',\'' + mdu + '\',\'' + id + '\')">不恢复</a>';
 | 
						||
            $("#e_tips_" + id).html(h);
 | 
						||
        }
 | 
						||
        setInterval(function() {
 | 
						||
            d = new Date();
 | 
						||
            var h = d.getHours();
 | 
						||
            var m = d.getMinutes();
 | 
						||
            var s = d.getSeconds();
 | 
						||
            h = h < 10 ? '0' + h : h;
 | 
						||
            m = m < 10 ? '0' + m : m;
 | 
						||
            s = s < 10 ? '0' + s : s;
 | 
						||
            if (editor.getValue().trim() != "") {
 | 
						||
                md_add_data("content", mdu, editor.getValue());
 | 
						||
                var id1 = "#e_tip_" + id;
 | 
						||
                var id2 = "#e_tips_" + id;
 | 
						||
                $(id1).html(" 数据已于 " + h + ':' + m + ':' + s + " 保存   ");
 | 
						||
                $(id2).html("");
 | 
						||
            }
 | 
						||
        }, 10000);
 | 
						||
 | 
						||
    } else {
 | 
						||
        $("#e_tip_" + id).after('您的浏览器不支持localStorage.无法开启自动保存草稿服务,请升级浏览器!');
 | 
						||
    }
 | 
						||
}
 | 
						||
// 保存数据
 | 
						||
function md_add_data(k, mdu, d) {
 | 
						||
    window.sessionStorage.setItem(k + mdu, d);
 | 
						||
}
 | 
						||
// 恢复数据
 | 
						||
//function md_rec_data(k,mdu,id, editor){
 | 
						||
//    if(window.sessionStorage.getItem(k+mdu) !== null){
 | 
						||
//        editor.setValue(window.sessionStorage.getItem(k+mdu));
 | 
						||
//        md_clear_data(k,mdu,id);
 | 
						||
//    }
 | 
						||
//}
 | 
						||
// 清空保存的数据
 | 
						||
function md_clear_data(k, mdu, id) {
 | 
						||
    window.sessionStorage.removeItem(k + mdu);
 | 
						||
    var id1 = "#e_tip_" + id;
 | 
						||
    var id2 = "#e_tips_" + id;
 | 
						||
    if (k == 'content') {
 | 
						||
        $(id2).html("");
 | 
						||
    } else {
 | 
						||
        $(id1).html("");
 | 
						||
    }
 | 
						||
}
 | 
						||
 | 
						||
// editorMD to create
 | 
						||
/**
 | 
						||
 *
 | 
						||
 * @param id  渲染DOM的id
 | 
						||
 * @param width 宽度
 | 
						||
 * @param high  高度
 | 
						||
 * @param placeholder
 | 
						||
 * @param imageUrl 上传图片的url
 | 
						||
 * @returns {*} 返回一个editorMD实例
 | 
						||
 */
 | 
						||
function create_editorMD(id, width, high, placeholder, imageUrl, readonly) {
 | 
						||
    var readonly = readonly == undefined ? false : readonly;
 | 
						||
    var editorName = editormd(id, {
 | 
						||
        width: width,
 | 
						||
        height: high,
 | 
						||
        syncScrolling: "single",
 | 
						||
        //你的lib目录的路径,我这边用JSP做测试的
 | 
						||
        path: "/editormd/lib/",
 | 
						||
        tex: true,
 | 
						||
        tocm: true,
 | 
						||
        emoji: true,
 | 
						||
        taskList: true,
 | 
						||
        codeFold: true,
 | 
						||
        searchReplace: true,
 | 
						||
        htmlDecode: "style,script,iframe",
 | 
						||
        sequenceDiagram: true,
 | 
						||
        autoFocus: false,
 | 
						||
        readonly: readonly,
 | 
						||
        toolbarIcons: function() {
 | 
						||
            // Or return editormd.toolbarModes[name]; // full, simple, mini
 | 
						||
            // Using "||" set icons align right.
 | 
						||
            return ["bold", "italic", "|", "list-ul", "list-ol", "|", "code", "code-block", "|", "testIcon", "testIcon1", '|', "image", "table", '|', "watch", "clear"]
 | 
						||
        },
 | 
						||
        toolbarCustomIcons: {
 | 
						||
            testIcon: "<a type=\"inline\" class=\"latex\" ><div class='zbg'></div></a>",
 | 
						||
            testIcon1: "<a type=\"latex\" class=\"latex\" ><div class='zbg_latex'></div></a>"
 | 
						||
        },
 | 
						||
        //这个配置在simple.html中并没有,但是为了能够提交表单,使用这个配置可以让构造出来的HTML代码直接在第二个隐藏的textarea域中,方便post提交表单。
 | 
						||
        saveHTMLToTextarea: true,
 | 
						||
        // 用于增加自定义工具栏的功能,可以直接插入HTML标签,不使用默认的元素创建图标
 | 
						||
        dialogMaskOpacity: 0.6,
 | 
						||
        placeholder: placeholder,
 | 
						||
        imageUpload: true,
 | 
						||
        imageFormats: ["jpg", "jpeg", "gif", "png", "bmp", "webp", "JPG", "JPEG", "GIF", "PNG", "BMP", "WEBP"],
 | 
						||
        imageUploadURL: imageUrl,
 | 
						||
        //url
 | 
						||
        onload: function(cMirror) {
 | 
						||
            $("#" + id + " [type=\"latex\"]").bind("click", function() {
 | 
						||
                editorName.cm.replaceSelection("```latex");
 | 
						||
                editorName.cm.replaceSelection("\n");
 | 
						||
                editorName.cm.replaceSelection("\n");
 | 
						||
                editorName.cm.replaceSelection("```");
 | 
						||
                var __Cursor = editorName.cm.getDoc().getCursor();
 | 
						||
                editorName.cm.setCursor(__Cursor.line - 1, 0);
 | 
						||
            });
 | 
						||
 | 
						||
            $("#" + id + " [type=\"inline\"]").bind("click", function() {
 | 
						||
                editorName.cm.replaceSelection("$$$$");
 | 
						||
                var __Cursor = editorName.cm.getDoc().getCursor();
 | 
						||
                editorName.cm.setCursor(__Cursor.line, __Cursor.ch - 2);
 | 
						||
                editorName.cm.focus();
 | 
						||
            });
 | 
						||
            $("[type=\"inline\"]").attr("title", "行内公式");
 | 
						||
            $("[type=\"latex\"]").attr("title", "多行公式");
 | 
						||
            setTimeout(function() {
 | 
						||
                editorName.resize();
 | 
						||
                editorName.cm.refresh();
 | 
						||
                window.new_md = editorName;
 | 
						||
            }, 300);
 | 
						||
        }
 | 
						||
    });
 | 
						||
    return editorName;
 | 
						||
}
 | 
						||
 | 
						||
// editormd to html
 | 
						||
/**
 | 
						||
 *
 | 
						||
 * @param id 渲染的id
 | 
						||
 * @param callback onload回調 暫時未用
 | 
						||
 */
 | 
						||
function editormd_to_html(id, callback) {
 | 
						||
    editormd.loadKaTeX(function() {
 | 
						||
        editormd.markdownToHTML(id, {
 | 
						||
            htmlDecode: "style,script,iframe",
 | 
						||
            // you can filter tags decode
 | 
						||
            onload: function() {
 | 
						||
                callback && callback()
 | 
						||
            },
 | 
						||
            taskList: true,
 | 
						||
            tex: true,
 | 
						||
            // 默认不解析
 | 
						||
            flowChart: true,
 | 
						||
            // 默认不解析
 | 
						||
            sequenceDiagram: true// 默认不解析
 | 
						||
        });
 | 
						||
    });
 | 
						||
}
 | 
						||
 | 
						||
function loadHeader() {
 | 
						||
    // //头部导航条的----------显示搜索框
 | 
						||
    // $("#search-open").on("click", function(e) {
 | 
						||
    //     $(this).hide();
 | 
						||
    //     //        $("#header-nav").animate({opacity:"0"},1000);
 | 
						||
    //     $(".posi-search").show()
 | 
						||
    //     // .animate({opacity:"1"},1000);
 | 
						||
    //     $("#header-nav").css("z-index", "2");
 | 
						||
    //     $(".posi-search").css("z-index", "3");
 | 
						||
    //     // $(".search-input").val("");  //  不清空
 | 
						||
    //     $(".search-input").focus();
 | 
						||
    //     $(".search-all .search-content").hide();
 | 
						||
    //     e.stopPropagation();
 | 
						||
    //     //阻止冒泡
 | 
						||
    // });
 | 
						||
    // $(".search-input").on("click", function(e) {
 | 
						||
    //     e.stopPropagation();
 | 
						||
    //     //阻止冒泡
 | 
						||
    // });
 | 
						||
    // //搜索框输入内容
 | 
						||
    // $(".search-input").on("input", function(e) {
 | 
						||
    //     if ($(".search-input").val() == "") {
 | 
						||
    //         $(".search-all .search-content").hide();
 | 
						||
    //     } else {
 | 
						||
    //         $(".search-all .search-content").show();
 | 
						||
    //     }
 | 
						||
    //     e.stopPropagation();
 | 
						||
    //     //阻止冒泡
 | 
						||
    // });
 | 
						||
    // //搜索
 | 
						||
    // $("#header_keyword_search").on("click", header_search);
 | 
						||
    // $("input[name='search_keyword']").on("keydown", function(event) {
 | 
						||
    //     var code;
 | 
						||
    //     if (!event) {
 | 
						||
    //         event = window.event;
 | 
						||
    //         //针对ie浏览器
 | 
						||
    //         code = event.keyCode;
 | 
						||
    //     } else {
 | 
						||
    //         code = event.keyCode;
 | 
						||
    //     }
 | 
						||
    //     if (code == 13) {
 | 
						||
    //         header_search();
 | 
						||
    //         return false;
 | 
						||
    //     }
 | 
						||
    // });
 | 
						||
    // $(".search-clear").click(function(e) {
 | 
						||
    //     e.stopPropagation();
 | 
						||
    // });
 | 
						||
    // //切换搜索条件
 | 
						||
    // $("#searchkey li").click(function(e) {
 | 
						||
    //     var key = $($(this).children("a")[0]).html();
 | 
						||
    //     switch (key) {
 | 
						||
    //     case '实训':
 | 
						||
    //         $("#search_type").val('1');
 | 
						||
    //         break;
 | 
						||
    //     case '课堂':
 | 
						||
    //         $("#search_type").val('2');
 | 
						||
    //         break;
 | 
						||
    //     case '用户':
 | 
						||
    //         $("#search_type").val('3');
 | 
						||
    //         break;
 | 
						||
    //     }
 | 
						||
    //     $("#searchkey").siblings(".searchkey").html(key);
 | 
						||
    //     //        $("#searchkey").hide();
 | 
						||
    //     e.stopPropagation();
 | 
						||
    //     //阻止冒泡
 | 
						||
    // });
 | 
						||
    // //切换选择导航条
 | 
						||
    // $("#header-nav li").click(function() {
 | 
						||
    //     $("#header-nav li").removeClass("active");
 | 
						||
    //     $(this).addClass("active");
 | 
						||
    // });
 | 
						||
    // //点击页面其它(与搜索框无关的地方)都会将搜索框隐藏,所以与搜索框有关的地方需要阻止冒泡
 | 
						||
    // $("body").on("click", function() {
 | 
						||
    //     closeSearch();
 | 
						||
    // });
 | 
						||
		//
 | 
						||
    // $(".search_history").on("click", function() {
 | 
						||
    //     $("input[name='search_keyword']").val($(this).html());
 | 
						||
    //     header_search();
 | 
						||
    // });
 | 
						||
}
 | 
						||
 | 
						||
function header_search() {
 | 
						||
    var keyword = $("input[name='search_keyword']").val();
 | 
						||
    // 搜索关键字
 | 
						||
    var index = $("#search_type").val();
 | 
						||
    // 搜索课程/项目
 | 
						||
    keyword = encodeURIComponent(keyword);
 | 
						||
    // $.get('/users/search_shixuns_or_course',
 | 
						||
    //     { search: keyword,
 | 
						||
    //         index: index});
 | 
						||
    window.location.href = "/users/search_shixuns_or_courses" + "?search=" + keyword + "&index=" + index;
 | 
						||
    //e.stopPropagation();//阻止冒泡
 | 
						||
}
 | 
						||
 | 
						||
//头部导航条的隐藏
 | 
						||
function closeSearch() {
 | 
						||
    $('#posi-search').hide();
 | 
						||
    $("#search-open").show();
 | 
						||
    //    $(".posi-search").animate({opacity:"0"},800);
 | 
						||
    $("#header-nav").animate({
 | 
						||
        opacity: "1"
 | 
						||
    }, 1000);
 | 
						||
    $(".posi-search").css("z-index", "2");
 | 
						||
    $("#header-nav").css("z-index", "3");
 | 
						||
}
 | 
						||
(function($) {
 | 
						||
    $.fn.drag = function(options) {
 | 
						||
        var x, drag = this, isMove = false, defaults = {};
 | 
						||
        var options = $.extend(defaults, options);
 | 
						||
        //添加背景,文字,滑块
 | 
						||
        var html = '<div class="drag_bg"></div>' + '<div class="drag_text" onselectstart="return false;" unselectable="on">请拖住滑块,拖动到最右边</div>' + '<div class="handler handler_bg"></div>';
 | 
						||
        this.append(html);
 | 
						||
 | 
						||
        var handler = drag.find('.handler');
 | 
						||
        var drag_bg = drag.find('.drag_bg');
 | 
						||
        var text = drag.find('.drag_text');
 | 
						||
        var maxWidth = text.width() - handler.width();
 | 
						||
        //能滑动的最大间距
 | 
						||
        //鼠标按下时候的x轴的位置
 | 
						||
        handler.mousedown(function(e) {
 | 
						||
            isMove = true;
 | 
						||
            x = e.pageX - parseInt(handler.css('left'), 10);
 | 
						||
        });
 | 
						||
 | 
						||
        //鼠标指针在上下文移动时,移动距离大于0小于最大间距,滑块x轴位置等于鼠标移动距离
 | 
						||
        $(document).mousemove(function(e) {
 | 
						||
            var _x = e.pageX - x;
 | 
						||
            var handler_offset = handler.offset();
 | 
						||
            var lastX = e.clientX - x;
 | 
						||
            lastX = Math.max(0, Math.min(maxWidth, lastX));
 | 
						||
            if (isMove) {
 | 
						||
                if (_x > 0 && _x <= maxWidth) {
 | 
						||
                    handler.css({
 | 
						||
                        'left': lastX
 | 
						||
                    });
 | 
						||
                    drag_bg.css({
 | 
						||
                        'width': lastX
 | 
						||
                    });
 | 
						||
                } else if (lastX > maxWidth - 5 && lastX < maxWidth + 5) {
 | 
						||
                    //鼠标指针移动距离达到最大时清空事件
 | 
						||
                    dragOk();
 | 
						||
                }
 | 
						||
            }
 | 
						||
        });
 | 
						||
        handler.mouseup(function(e) {
 | 
						||
            isMove = false;
 | 
						||
            var _x = e.pageX - x;
 | 
						||
            if (_x < maxWidth) {
 | 
						||
                //鼠标松开时,如果没有达到最大距离位置,滑块就返回初始位置
 | 
						||
                handler.css({
 | 
						||
                    'left': 0
 | 
						||
                });
 | 
						||
                drag_bg.css({
 | 
						||
                    'width': 0
 | 
						||
                });
 | 
						||
            }
 | 
						||
        });
 | 
						||
 | 
						||
        //清空事件
 | 
						||
        function dragOk() {
 | 
						||
            var kuaiwidth = drag.width() - handler.width();
 | 
						||
            handler.removeClass('handler_bg').addClass('handler_ok_bg');
 | 
						||
            handler.css({
 | 
						||
                'left': kuaiwidth + 'px'
 | 
						||
            })
 | 
						||
            text.css({
 | 
						||
                'width': kuaiwidth + 'px'
 | 
						||
            });
 | 
						||
            text.text('验证通过');
 | 
						||
            drag.css({
 | 
						||
                'color': '#fff'
 | 
						||
            });
 | 
						||
            drag_bg.css({
 | 
						||
                'width': kuaiwidth + 'px'
 | 
						||
            })
 | 
						||
            handler.unbind('mousedown');
 | 
						||
            $(document).unbind('mousemove');
 | 
						||
            $(document).unbind('mouseup');
 | 
						||
            handler.parent().next().find("p").html("").hide();
 | 
						||
        }
 | 
						||
    }
 | 
						||
    ;
 | 
						||
}
 | 
						||
)(jQuery);
 | 
						||
 | 
						||
//判断是手机端还是电脑端
 | 
						||
function IsPC() {
 | 
						||
    var userAgentInfo = navigator.userAgent;
 | 
						||
    var Agents = ["Android", "iPhone", "SymbianOS", "Windows Phone", "iPad", "iPod"];
 | 
						||
    var flag = true;
 | 
						||
    for (var v = 0; v < Agents.length; v++) {
 | 
						||
        if (userAgentInfo.indexOf(Agents[v]) > 0) {
 | 
						||
            flag = false;
 | 
						||
            break;
 | 
						||
        }
 | 
						||
    }
 | 
						||
    return flag;
 | 
						||
}
 | 
						||
 | 
						||
//Dom:绑定事件的节点对象,ChangeDOM:操作的相关节点,
 | 
						||
function LeaveTitle(Dom, ChangeDom) {
 | 
						||
    ChangeDom.html("").hide();
 | 
						||
    ChangeDom.parent().css({
 | 
						||
        opacity: 0,
 | 
						||
        left: 0,
 | 
						||
        top: 0
 | 
						||
    }).hide();
 | 
						||
}
 | 
						||
 | 
						||
$(function() {
 | 
						||
    //平台tip的样式优化js
 | 
						||
    var $desc = $("<div class=\"-task-title\">" + "<div class=\"data-tip-down\"></div>" + "<div class=\"data-tip-left\"></div>" + "<div class=\"data-tip-right\"></div>" + "<div class=\"data-tip-top\"></div>" + "</div>").appendTo("body");
 | 
						||
    //Dom:绑定事件的节点对象,ChangeDOM:操作的相关节点,
 | 
						||
    function LeaveTitle(Dom, ChangeDom) {
 | 
						||
        Dom.live("mouseleave", function() {
 | 
						||
            ChangeDom.html("").hide();
 | 
						||
            $desc.css({
 | 
						||
                opacity: 0,
 | 
						||
                left: 0,
 | 
						||
                top: 0
 | 
						||
            }).hide();
 | 
						||
        })
 | 
						||
    }
 | 
						||
    LeaveTitle($("[data-tip-top]"), $(".data-tip-top"));
 | 
						||
    LeaveTitle($("[data-tip-down]"), $(".data-tip-down"));
 | 
						||
    LeaveTitle($("[data-tip-right]"), $(".data-tip-left"));
 | 
						||
    LeaveTitle($("[data-tip-left]"), $(".data-tip-right"));
 | 
						||
    $("[data-tip-top]").live("mouseenter", function() {
 | 
						||
        var $tool = $(this).attr("data-tip-top");
 | 
						||
        if ($tool != "") {
 | 
						||
            $(".data-tip-top").show().html($tool);
 | 
						||
            $desc.show().css({
 | 
						||
                left: $(this).offset().left - ($desc.width() - $(this).outerWidth()) / 2,
 | 
						||
                opacity: 1,
 | 
						||
                top: $(this).offset().top - 30
 | 
						||
            });
 | 
						||
        }
 | 
						||
    });
 | 
						||
    $("[data-tip-down]").live("mouseenter", function() {
 | 
						||
        var $tool = $(this).attr("data-tip-down");
 | 
						||
        if ($tool != "") {
 | 
						||
            $(".data-tip-down").show().html($tool);
 | 
						||
            $desc.show().css({
 | 
						||
                left: $(this).offset().left - ($desc.width() - $(this).outerWidth()) / 2,
 | 
						||
                opacity: 1,
 | 
						||
                top: $(this).offset().top + $(this).height() + 6
 | 
						||
            });
 | 
						||
        }
 | 
						||
    });
 | 
						||
    $("[data-tip-right]").live("mouseenter", function() {
 | 
						||
        var $tool = $(this).attr("data-tip-right");
 | 
						||
        if ($tool != "") {
 | 
						||
            console.log($(this).offset().left + "  " + $(this).width());
 | 
						||
            $(".data-tip-left").show().html($tool);
 | 
						||
            $desc.show().css({
 | 
						||
                left: $(this).offset().left + $(this).outerWidth() + 6,
 | 
						||
                opacity: 1,
 | 
						||
                top: $(this).offset().top - ($desc.height() - $(this).height()) / 2
 | 
						||
            });
 | 
						||
        }
 | 
						||
    });
 | 
						||
    $("[data-tip-left]").live("mouseenter", function() {
 | 
						||
        var $tool = $(this).attr("data-tip-left");
 | 
						||
        if ($tool != "") {
 | 
						||
            $(".data-tip-right").show().html($tool);
 | 
						||
            $desc.show().css({
 | 
						||
                left: $(this).offset().left - $desc.width() - 6,
 | 
						||
                opacity: 1,
 | 
						||
                top: $(this).offset().top - ($desc.height() - $(this).height()) / 2
 | 
						||
            });
 | 
						||
        }
 | 
						||
    });
 | 
						||
    unitDownOption();
 | 
						||
});
 | 
						||
 | 
						||
function unitDownOption() {
 | 
						||
    //下拉框
 | 
						||
    $("[select-for]").append("<i class='fa fa-sort-desc lesson_img color-grey-8'></i>");
 | 
						||
    $("[select-for]").hover(function() {
 | 
						||
        $(this).find(".down-select").show();
 | 
						||
    }, function() {
 | 
						||
        $(this).find(".down-select").hide();
 | 
						||
    })
 | 
						||
    $("[select-for] .down-select p").bind("click", function() {
 | 
						||
        //alert($(this).attr("data-shixun-value"));
 | 
						||
        if ($(this).attr("id") == "diy_script") {
 | 
						||
            return;
 | 
						||
            // 实训新建-选择自定义脚本diy
 | 
						||
        }
 | 
						||
        $(this).parents(".down-select").siblings("input[type=hidden]").attr("value", $(this).attr("data-shixun-value"));
 | 
						||
 | 
						||
        $(this).parents(".down-select").siblings("input[type=text]").val($(this).html().trim());
 | 
						||
        $(this).parents(".down-select").hide();
 | 
						||
    })
 | 
						||
}
 | 
						||
 | 
						||
//初始化省份
 | 
						||
function showprovince(id) {
 | 
						||
    var arrary = ["北京", "上海", "广东", "江苏", "浙江", "重庆", "安徽", "福建", "甘肃", "广西", "贵州", "海南", "河北", "黑龙江", "河南", "湖北", "湖南", "江西", "吉林", "辽宁", "内蒙古", "宁夏", "青海", "山东", "山西", "陕西", "四川", "天津", "新疆", "西藏", "云南", "香港特别行政区", "澳门特别行政区", "台湾", "海外"];
 | 
						||
    var html = "<option value=\"0\">请选择所在省份</option>"
 | 
						||
    for (var i = 0; i < arrary.length; i++) {
 | 
						||
        var item = arrary[i];
 | 
						||
        html += "<option value=\"" + item + "\">" + item + "</option>";
 | 
						||
    }
 | 
						||
    $("#" + id).html(html);
 | 
						||
}
 | 
						||
 | 
						||
//省市下拉框
 | 
						||
function showcity(province, cityField) {
 | 
						||
    switch (province) {
 | 
						||
    case "北京":
 | 
						||
        var cityOptions = new Array("东城","西城","朝阳","丰台","石景山","海淀","门头沟","房山","通州","顺义","昌平","大兴","平谷","怀柔","密云","延庆");
 | 
						||
        break;
 | 
						||
    case "上海":
 | 
						||
        var cityOptions = new Array("崇明","黄浦","卢湾","徐汇","长宁","静安","普陀","闸北","虹口","杨浦","闵行","宝山","嘉定","浦东","金山","松江","青浦","南汇","奉贤");
 | 
						||
        break;
 | 
						||
    case "广东":
 | 
						||
        var cityOptions = new Array("广州","深圳","珠海","东莞","中山","佛山","惠州","河源","潮州","江门","揭阳","茂名","梅州","清远","汕头","汕尾","韶关","顺德","阳江","云浮","湛江","肇庆");
 | 
						||
        break;
 | 
						||
    case "江苏":
 | 
						||
        var cityOptions = new Array("南京","常熟","常州","海门","淮安","江都","江阴","昆山","连云港","南通","启东","沭阳","宿迁","苏州","太仓","泰州","同里","无锡","徐州","盐城","扬州","宜兴","仪征","张家港","镇江","周庄");
 | 
						||
        break;
 | 
						||
    case "重庆":
 | 
						||
        var cityOptions = new Array("万州","涪陵","渝中","大渡口","江北","沙坪坝","九龙坡","南岸","北碚","万盛","双挢","渝北","巴南","黔江","长寿","綦江","潼南","铜梁","大足","荣昌","壁山","梁平","城口","丰都","垫江","武隆","忠县","开县","云阳","奉节","巫山","巫溪","石柱","秀山","酉阳","彭水","江津","合川","永川","南川");
 | 
						||
        break;
 | 
						||
    case "安徽":
 | 
						||
        var cityOptions = new Array("合肥","安庆","蚌埠","亳州","巢湖","滁州","阜阳","贵池","淮北","淮化","淮南","黄山","九华山","六安","马鞍山","宿州","铜陵","屯溪","芜湖","宣城");
 | 
						||
        break;
 | 
						||
    case "福建":
 | 
						||
        var cityOptions = new Array("福州","厦门","泉州","漳州","龙岩","南平","宁德","莆田","三明");
 | 
						||
        break;
 | 
						||
    case "甘肃":
 | 
						||
        var cityOptions = new Array("兰州","白银","定西","敦煌","甘南","金昌","酒泉","临夏","平凉","天水","武都","武威","西峰","张掖");
 | 
						||
        break;
 | 
						||
    case "广西":
 | 
						||
        var cityOptions = new Array("南宁","百色","北海","桂林","防城港","贵港","河池","贺州","柳州","钦州","梧州","玉林");
 | 
						||
        break;
 | 
						||
    case "贵州":
 | 
						||
        var cityOptions = new Array("贵阳","安顺","毕节","都匀","凯里","六盘水","铜仁","兴义","玉屏","遵义");
 | 
						||
        break;
 | 
						||
    case "海南":
 | 
						||
        var cityOptions = new Array("海口","儋县","陵水","琼海","三亚","通什","万宁");
 | 
						||
        break;
 | 
						||
    case "河北":
 | 
						||
        var cityOptions = new Array("石家庄","保定","北戴河","沧州","承德","丰润","邯郸","衡水","廊坊","南戴河","秦皇岛","唐山","新城","邢台","张家口");
 | 
						||
        break;
 | 
						||
    case "黑龙江":
 | 
						||
        var cityOptions = new Array("哈尔滨","北安","大庆","大兴安岭","鹤岗","黑河","佳木斯","鸡西","牡丹江","齐齐哈尔","七台河","双鸭山","绥化","伊春");
 | 
						||
        break;
 | 
						||
    case "河南":
 | 
						||
        var cityOptions = new Array("郑州","安阳","鹤壁","潢川","焦作","济源","开封","漯河","洛阳","南阳","平顶山","濮阳","三门峡","商丘","新乡","信阳","许昌","周口","驻马店");
 | 
						||
        break;
 | 
						||
    case "香港":
 | 
						||
        var cityOptions = new Array("香港","九龙","新界");
 | 
						||
        break;
 | 
						||
    case "湖北":
 | 
						||
        var cityOptions = new Array("武汉","恩施","鄂州","黄冈","黄石","荆门","荆州","潜江","十堰","随州","武穴","仙桃","咸宁","襄阳","襄樊","孝感","宜昌");
 | 
						||
        break;
 | 
						||
    case "湖南":
 | 
						||
        var cityOptions = new Array("长沙","常德","郴州","衡阳","怀化","吉首","娄底","邵阳","湘潭","益阳","岳阳","永州","张家界","株洲");
 | 
						||
        break;
 | 
						||
    case "江西":
 | 
						||
        var cityOptions = new Array("南昌","抚州","赣州","吉安","景德镇","井冈山","九江","庐山","萍乡","上饶","新余","宜春","鹰潭");
 | 
						||
        break;
 | 
						||
    case "吉林":
 | 
						||
        var cityOptions = new Array("长春","吉林","白城","白山","珲春","辽源","梅河","四平","松原","通化","延吉");
 | 
						||
        break;
 | 
						||
    case "辽宁":
 | 
						||
        var cityOptions = new Array("沈阳","鞍山","本溪","朝阳","大连","丹东","抚顺","阜新","葫芦岛","锦州","辽阳","盘锦","铁岭","营口");
 | 
						||
        break;
 | 
						||
    case "澳门":
 | 
						||
        var cityOptions = new Array("澳门");
 | 
						||
        break;
 | 
						||
    case "内蒙古":
 | 
						||
        var cityOptions = new Array("呼和浩特","阿拉善盟","包头","赤峰","东胜","海拉尔","集宁","临河","通辽","乌海","乌兰浩特","锡林浩特");
 | 
						||
        break;
 | 
						||
    case "宁夏":
 | 
						||
        var cityOptions = new Array("银川","固源","石嘴山","吴忠");
 | 
						||
        break;
 | 
						||
    case "青海":
 | 
						||
        var cityOptions = new Array("西宁","德令哈","格尔木","共和","海东","海晏","玛沁","同仁","玉树");
 | 
						||
        break;
 | 
						||
    case "山东":
 | 
						||
        var cityOptions = new Array("济南","滨州","兖州","德州","东营","菏泽","济宁","莱芜","聊城","临沂","蓬莱","青岛","曲阜","日照","泰安","潍坊","威海","烟台","枣庄","淄博");
 | 
						||
        break;
 | 
						||
    case "山西":
 | 
						||
        var cityOptions = new Array("太原","长治","大同","候马","晋城","离石","临汾","宁武","朔州","忻州","阳泉","榆次","运城");
 | 
						||
        break;
 | 
						||
    case "陕西":
 | 
						||
        var cityOptions = new Array("西安","安康","宝鸡","汉中","渭南","商州","绥德","铜川","咸阳","延安","榆林");
 | 
						||
        break;
 | 
						||
    case "四川":
 | 
						||
        var cityOptions = new Array("成都","巴中","达川","德阳","都江堰","峨眉山","涪陵","广安","广元","九寨沟","康定","乐山","泸州","马尔康","绵阳","眉山","南充","内江","攀枝花","遂宁","汶川","西昌","雅安","宜宾","自贡","资阳");
 | 
						||
        break;
 | 
						||
    case "台湾":
 | 
						||
        var cityOptions = new Array("台北","基隆","台南","台中","高雄","屏东","南投","云林","新竹","彰化","苗栗","嘉义","花莲","桃园","宜兰","台东","金门","马祖","澎湖");
 | 
						||
        break;
 | 
						||
    case "天津":
 | 
						||
        var cityOptions = new Array("天津","和平","东丽","河东","西青","河西","津南","南开","北辰","河北","武清","红挢","塘沽","汉沽","大港","宁河","静海","宝坻","蓟县");
 | 
						||
        break;
 | 
						||
    case "新疆":
 | 
						||
        var cityOptions = new Array("乌鲁木齐","阿克苏","阿勒泰","阿图什","博乐","昌吉","东山","哈密","和田","喀什","克拉玛依","库车","库尔勒","奎屯","石河子","塔城","吐鲁番","伊宁");
 | 
						||
        break;
 | 
						||
    case "西藏":
 | 
						||
        var cityOptions = new Array("拉萨","阿里","昌都","林芝","那曲","日喀则","山南");
 | 
						||
        break;
 | 
						||
    case "云南":
 | 
						||
        var cityOptions = new Array("昆明","大理","保山","楚雄","大理","东川","个旧","景洪","开远","临沧","丽江","六库","潞西","曲靖","思茅","文山","西双版纳","玉溪","中甸","昭通");
 | 
						||
        break;
 | 
						||
    case "浙江":
 | 
						||
        var cityOptions = new Array("杭州","安吉","慈溪","定海","奉化","海盐","黄岩","湖州","嘉兴","金华","临安","临海","丽水","宁波","瓯海","平湖","千岛湖","衢州","江山","瑞安","绍兴","嵊州","台州","温岭","温州","余姚","舟山");
 | 
						||
        break;
 | 
						||
    case "海外":
 | 
						||
        var cityOptions = new Array("美国","日本","英国","法国","德国","其他");
 | 
						||
        break;
 | 
						||
    default:
 | 
						||
        var cityOptions = new Array("请选择所在城市");
 | 
						||
        break;
 | 
						||
    }
 | 
						||
 | 
						||
    cityField.options.length = 0;
 | 
						||
    for (var i = 0; i < cityOptions.length; i++) {
 | 
						||
        cityField.options[i] = new Option(cityOptions[i],cityOptions[i]);
 | 
						||
        /*
 | 
						||
         if (cityField.options[i].value==city)
 | 
						||
         {
 | 
						||
         //alert("here put City ok!");
 | 
						||
         document.oblogform["city"].selectedIndex = i;
 | 
						||
         }*/
 | 
						||
    }
 | 
						||
}
 | 
						||
 | 
						||
/*弹框*/
 | 
						||
// 公共弹框样式
 | 
						||
// 建议左右栏的:Width:460,Height:190
 | 
						||
// 建议宽屏对应值:Width:760,Height:500
 | 
						||
function pop_box_new(value, Width, Height, close) {
 | 
						||
 | 
						||
    if ($("#popupAll").length > 0) {
 | 
						||
        $("#popupAll").remove();
 | 
						||
    }
 | 
						||
    w = ($(window).width() - Width) / 2;
 | 
						||
    h = ($(window).height() - Height) / 2;
 | 
						||
    var html = "<div class=\"popupAll none\" id='popupAll'><div class=\"pr\"><div id=\"popupWrap\"></div></div></div>";
 | 
						||
    if (close) {
 | 
						||
        value = "<a href='javascript:void(0)' id='closeIcon'><i class='iconfont icon-shanchudiao'></i></a>" + value;
 | 
						||
    }
 | 
						||
    $(document.body).append(html);
 | 
						||
    $("#popupWrap").html(value);
 | 
						||
    $('#popupWrap').css({
 | 
						||
        "top": h + "px",
 | 
						||
        "left": w + "px",
 | 
						||
        "padding": "0",
 | 
						||
        "border": "none",
 | 
						||
        "position": "fixed",
 | 
						||
        "z-index": "99999",
 | 
						||
        "background-color": "#fff",
 | 
						||
        "border-radius": "10px"
 | 
						||
    });
 | 
						||
    if (close) {
 | 
						||
        $('#closeIcon').css({
 | 
						||
            "top": "-26px",
 | 
						||
            "left": Width + "px",
 | 
						||
            "z-index": "100000"
 | 
						||
        });
 | 
						||
    }
 | 
						||
 | 
						||
    $("#popupWrap").parent().parent().show();
 | 
						||
    $('#popupAll').find("#closeIcon").click(function() {
 | 
						||
        $("#popupAll").hide();
 | 
						||
    });
 | 
						||
    $('#popupAll').find("a[class*='pop_close']").click(function() {
 | 
						||
        $("#popupAll").hide();
 | 
						||
    });
 | 
						||
    //    w = ($(window).width() - Width)/2;
 | 
						||
    //    h = ($(window).height() - Height)/2;
 | 
						||
    //    $("#ajax-modal").html(value);
 | 
						||
    //    showModal('ajax-modal', Width + 'px');
 | 
						||
    //    $('#ajax-modal').siblings().remove();
 | 
						||
    //    $('#ajax-modal').parent().css({"top": h+"px","left": w+"px","padding":"0","border":"none","position":"fixed"});
 | 
						||
    //    $('#ajax-modal').parent().removeClass("resourceUploadPopup popbox_polls popbox");
 | 
						||
    //    $('#ajax-modal').css({"padding":"0","overflow":"hidden"});
 | 
						||
    //    $('#ajax-modal').parent().attr("id","popupWrap");
 | 
						||
 | 
						||
    //拖拽
 | 
						||
    function Drag(id) {
 | 
						||
        this.div = document.getElementById(id);
 | 
						||
        if (this.div) {
 | 
						||
            this.div.style.cursor = "move";
 | 
						||
            this.div.style.position = "fixed";
 | 
						||
        }
 | 
						||
        this.disX = 0;
 | 
						||
        this.disY = 0;
 | 
						||
        var _this = this;
 | 
						||
        this.div.onmousedown = function(evt) {
 | 
						||
            _this.getDistance(evt);
 | 
						||
            document.onmousemove = function(evt) {
 | 
						||
                _this.setPosition(evt);
 | 
						||
            }
 | 
						||
            ;
 | 
						||
            _this.div.onmouseup = function() {
 | 
						||
                _this.clearEvent();
 | 
						||
            }
 | 
						||
        }
 | 
						||
    }
 | 
						||
    Drag.prototype.getDistance = function(evt) {
 | 
						||
        var oEvent = evt || event;
 | 
						||
        this.disX = oEvent.clientX - this.div.offsetLeft;
 | 
						||
        this.disY = oEvent.clientY - this.div.offsetTop;
 | 
						||
    }
 | 
						||
    ;
 | 
						||
    Drag.prototype.setPosition = function(evt) {
 | 
						||
        var oEvent = evt || event;
 | 
						||
        var l = oEvent.clientX - this.disX;
 | 
						||
        var t = oEvent.clientY - this.disY;
 | 
						||
        if (l <= 0) {
 | 
						||
            l = 0;
 | 
						||
        } else if (l >= document.documentElement.clientWidth - this.div.offsetWidth) {
 | 
						||
            l = document.documentElement.clientWidth - this.div.offsetWidth;
 | 
						||
        }
 | 
						||
        if (t <= 0) {
 | 
						||
            t = 0;
 | 
						||
        } else if (t >= document.documentElement.clientHeight - this.div.offsetHeight) {
 | 
						||
            t = document.documentElement.clientHeight - this.div.offsetHeight;
 | 
						||
        }
 | 
						||
        this.div.style.left = l + "px";
 | 
						||
        this.div.style.top = t + "px";
 | 
						||
    }
 | 
						||
    ;
 | 
						||
    Drag.prototype.clearEvent = function() {
 | 
						||
        this.div.onmouseup = null;
 | 
						||
        document.onmousemove = null;
 | 
						||
    }
 | 
						||
    ;
 | 
						||
 | 
						||
    new Drag("popupWrap");
 | 
						||
 | 
						||
    $("#popupAll input, #popupAll textarea, #popupAll select, #popupAll ul, #popupAll a,#shixun_search_form_div").mousedown(function(event) {
 | 
						||
        event.stopPropagation();
 | 
						||
        new Drag("popupWrap");
 | 
						||
    });
 | 
						||
 | 
						||
}
 | 
						||
 | 
						||
function hideModal(el) {
 | 
						||
    if ($("#popupAll").length > 0) {
 | 
						||
        $("#popupAll").remove();
 | 
						||
    } else {
 | 
						||
        var modal;
 | 
						||
        if (el) {
 | 
						||
            modal = $(el).parents('.ui-dialog-content');
 | 
						||
        } else {
 | 
						||
            modal = $('#ajax-modal');
 | 
						||
        }
 | 
						||
        modal.dialog("close");
 | 
						||
    }
 | 
						||
}
 | 
						||
 | 
						||
//提示框:只有一个确定按钮,点击跳转
 | 
						||
//<a href="'+ url +'" class="pop_close"><i class="fa fa-times-circle font-18 link-color-grey fr mt5"></i></a>
 | 
						||
function notice_box_redirect(url, str) {
 | 
						||
    var htmlvalue = '<div class="task-popup" style="width:480px;"><div class="task-popup-title clearfix font-20">提示</div>' + '<div class="task-popup-content"><p class="task-popup-text-center font-16 mt15 mb15">' + str + '</p></div><div class="task-popup-sure clearfix">' + '<a href="' + url + '" class="task-btn task-btn-orange" onclick="hideModal();">确定</a></div></div>';
 | 
						||
    pop_box_new(htmlvalue, 480, 160);
 | 
						||
}
 | 
						||
//按钮内容自定义(自定义按钮需要remote=true,且有取消按钮)
 | 
						||
function notice_operation_box(url, str, btnstr) {
 | 
						||
    var htmlvalue = '<div class="task-popup" style="width:480px;"><div class="task-popup-title clearfix">提示</div>' + '<div class="task-popup-content"><p class="task-popup-text-center font-16">' + str + '</p></div><div class="task-popup-OK clearfix">' + '<a href="javascript:void(0);" onclick="hideModal();" class="task-btn mr20">取消</a><a href="' + url + '" class="task-btn task-btn-orange" onclick="hideModal();" target="_blank" remote="true">' + btnstr + '</a></div></div>';
 | 
						||
    pop_box_new(htmlvalue, 480, 160);
 | 
						||
}
 | 
						||
//点击删除时的确认弹框: 不走destroy方法
 | 
						||
function delete_confirm_box(url, str) {
 | 
						||
    var htmlvalue = '<div class="task-popup" style="width:480px;"><div class="task-popup-title clearfix">提示</div>' + '<div class="task-popup-content"><p class="task-popup-text-center font-16">' + str + '</p></div><div class="task-popup-submit clearfix"><a href="javascript:void(0);" onclick="hideModal();" class="task-btn fl">取消</a>' + '<a href="' + url + '" class="task-btn task-btn-orange fr" onclick="hideModal();" data-remote="true" id="task_popup_confirm">确定</a></div></div>';
 | 
						||
    pop_box_new(htmlvalue, 480, 160);
 | 
						||
}
 | 
						||
//点击删除时的确认弹框: 走destroy方法,remote为true
 | 
						||
function delete_confirm_box_2(url, str) {
 | 
						||
    var htmlvalue = '<div class="task-popup" style="width:480px;"><div class="task-popup-title clearfix">提示</div>' + '<div class="task-popup-content"><div class="task-popup-text-center font-14">' + str + '</div></div><div class="task-popup-submit clearfix"><a href="javascript:void(0);" onclick="hideModal();" class="task-btn fl">取消</a>' + '<a href="' + url + '" class="task-btn task-btn-orange fr" onclick="hideModal();" data-method="delete" data-remote="true">确定</a></div></div>';
 | 
						||
    pop_box_new(htmlvalue, 480, 160);
 | 
						||
}
 | 
						||
 | 
						||
// 点击确定的时候ajax请求,两个按钮 点击确认跳转, 提示信息可以多行
 | 
						||
function op_confirm_box_remote(url, str) {
 | 
						||
    var htmlvalue = '<div class="task-popup" style="width:578px;"><div class="task-popup-title clearfix">提示</div>' + '<div class="task-popup-content"><p class="task-popup-text-center font-16">' + str + '</p></div><div class="task-popup-submit clearfix"><a href="javascript:void(0);" onclick="hideModal();" class="task-btn fl">取消</a>' + '<a href="' + url + '" class="task-btn task-btn-orange fr" onclick="hideModal();" data-remote="true">确定</a></div></div>';
 | 
						||
    pop_box_new(htmlvalue, 578, 205);
 | 
						||
}
 | 
						||
 | 
						||
//点击删除时的确认弹框: post,remote为true
 | 
						||
function post_confirm_box(url, str) {
 | 
						||
    var htmlvalue = '<div class="task-popup" style="width:480px;"><div class="task-popup-title clearfix"><h3 class="fl color-grey3">提示</h3><a href="javascript:void(0);" class="pop_close"><i class="fa fa-times-circle font-18 link-color-grey fr mt5"></i></a></div>' + '<div class="task-popup-content"><p class="task-popup-text-center font-16">' + str + '</p></div><div class="task-popup-submit clearfix"><a href="javascript:void(0);" onclick="hideModal();" class="task-btn fl">取消</a>' + '<a href="' + url + '" class="task-btn task-btn-orange fr pop_close" data-method="POST" data-remote="true">确定</a></div></div>';
 | 
						||
    pop_box_new(htmlvalue, 480, 160);
 | 
						||
}
 | 
						||
 | 
						||
//提示框:只有一个确定按钮,点击关闭弹框
 | 
						||
//<a href="javascript:void(0);" class="pop_close"><i class="fa fa-times-circle font-18 link-color-grey fr mt5"></i></a>
 | 
						||
function notice_box(str) {
 | 
						||
    var htmlvalue = '<div class="task-popup" style="width:480px;"><div class="task-popup-title clearfix">提示</div>' + '<div class="task-popup-content"><p class="task-popup-text-center font-16">' + str + '</p></div><div class="task-popup-sure clearfix">' + '<a href="javascript:void(0);" class="task-btn task-btn-orange" onclick="hideModal();">确定</a></div></div>';
 | 
						||
    pop_box_new(htmlvalue, 480, 160);
 | 
						||
}
 | 
						||
 | 
						||
//点击删除时的确认弹框: 走destroy方法
 | 
						||
function delete_confirm_box_3(url, str) {
 | 
						||
    var htmlvalue = '<div class="task-popup" style="width:480px;"><div class="task-popup-title clearfix">提示</div>' + '<div class="task-popup-content"><p class="task-popup-text-center font-16">' + str + '</p></div><div class="task-popup-submit clearfix"><a href="javascript:void(0);" onclick="hideModal();" class="task-btn fl">取消</a>' + '<a href="' + url + '" class="task-btn task-btn-orange fr" data-method="delete" onclick="hideModal();">确定</a></div></div>';
 | 
						||
    pop_box_new(htmlvalue, 480, 160);
 | 
						||
}
 | 
						||
 | 
						||
//取消和确定,确定会调用自定义方法
 | 
						||
function op_confirm_tip(str, func) {
 | 
						||
    var htmlvalue = '<div class="task-popup" style="width:500px;"><div class="task-popup-title clearfix">提示</div>' + '<div class="task-popup-content"><p class="task-popup-text-center font-16">' + str + '</p></div><div class="task-popup-submit clearfix"><a href="javascript:void(0);" onclick="hideModal();" class="task-btn fl">取消</a>' + '<a href="javascript:void(0)" class="task-btn task-btn-orange fr" onclick="' + func + '();">确定</a></div></div>';
 | 
						||
    pop_box_new(htmlvalue, 500, 205);
 | 
						||
}
 | 
						||
 | 
						||
//取消和确定,确定会调用自定义方法(带参数)
 | 
						||
function op_confirm_tip_1(str, func) {
 | 
						||
    var htmlvalue = '<div class="task-popup" style="width:500px;"><div class="task-popup-title clearfix">提示</div>' + '<div class="task-popup-content"><p class="task-popup-text-center font-16">' + str + '</p></div><div class="task-popup-submit clearfix"><a href="javascript:void(0);" onclick="hideModal();" class="task-btn fl">取消</a>' + '<a href="javascript:void(0)" class="task-btn task-btn-orange fr" onclick="' + func + '">确定</a></div></div>';
 | 
						||
    pop_box_new(htmlvalue, 500, 205);
 | 
						||
}
 | 
						||
 | 
						||
function op_confirm_box_loading(url, str) {
 | 
						||
    var htmlvalue = '<div class="task-popup" style="width:578px;"><div class="task-popup-title clearfix">提示</div>' + '<div class="task-popup-content"><p class="task-popup-text-center font-16 pt15">' + str + '</p></div><div class="task-popup-submit clearfix"><a href="javascript:void(0);" onclick="hideModal();" class="task-btn fl">取消</a>' + '<a href="' + url + '" class="task-btn task-btn-orange fr" onclick="hideModal();$(\'.loading_all\').show();">确定</a></div></div>';
 | 
						||
    pop_box_new(htmlvalue, 578, 205);
 | 
						||
}
 | 
						||
 | 
						||
// 两个按钮 点击确认跳转, 提示信息有两行
 | 
						||
function s_op_confirm_box(url, str) {
 | 
						||
    var htmlvalue = '<div class="task-popup" style="width:480px;"><div class="task-popup-title clearfix">提示</div>' + '<div class="task-popup-content"><p class="task-popup-text-center font-16">' + str + '</p></div><div class="task-popup-submit clearfix"><a href="javascript:void(0);" onclick="hideModal();" class="task-btn fl">取消</a>' + '<a href="' + url + '" class="task-btn task-btn-orange fr" onclick="hideModal();">确定</a></div></div>';
 | 
						||
    pop_box_new(htmlvalue, 480, 205);
 | 
						||
}
 | 
						||
 | 
						||
function suofang() {
 | 
						||
    var html = '<div><p class="mb20 font-16 edu-txt-center">可能会影响某些功能的正常使用</p><ul class="mb20 color-grey-6" style="width: 372px;margin:0px auto;">' + '<li>1.请尝试调整浏览器缩放比例为<span class="color-orange mr5">100%</span>(快捷键ctrl+0)</li>' + '<li>2.请尝试调整系统显示比例为<span class="color-orange mr5">100%</span>(控制面板/显示 设置)</li>' + '</ul></div>';
 | 
						||
    sure_confirm_box("页面缩放比例不正确", 600, 310, html);
 | 
						||
}
 | 
						||
 | 
						||
//一个“知道了”按钮,title和宽度都作为参数
 | 
						||
function sure_confirm_box(title, width, height, str) {
 | 
						||
    var htmlvalue = '<div class="task-popup" style="width:' + width + 'px;"><div class="task-popup-title clearfix">' + title + '</div>' + '<div class="task-popup-content edu-txt-center">' + str + '</div><div class="mb30 edu-txt-center clearfix">' + '<a href="javascript:void(0)" class="task-btn task-btn-orange" onclick="hideModal();">知道了</a></div></div>';
 | 
						||
    pop_box_new(htmlvalue, width, height);
 | 
						||
}
 | 
						||
 | 
						||
function throttle(method, context, e) {
 | 
						||
    clearTimeout(method.tId);
 | 
						||
    method.tId = setTimeout(function() {
 | 
						||
        method.call(context, e);
 | 
						||
    }, 500);
 | 
						||
}
 | 
						||
 | 
						||
function apply_publish_shixun(url) {
 | 
						||
    if ($("#apply_publish_shixun").attr("data-option") == '1') {
 | 
						||
        $("#apply_publish_shixun").attr("data-option", 0);
 | 
						||
        $("#apply_publish_shixun").addClass("disabled-grey-bg");
 | 
						||
        $.ajax({
 | 
						||
            url: url,
 | 
						||
            type: 'get'
 | 
						||
        });
 | 
						||
    }
 | 
						||
}
 | 
						||
 | 
						||
var autoTextarea = function(elem, extra, maxHeight) {
 | 
						||
    extra = extra || 0;
 | 
						||
    var isFirefox = !!document.getBoxObjectFor || 'mozInnerScreenX'in window
 | 
						||
      , isOpera = !!window.opera && !!window.opera.toString().indexOf('Opera')
 | 
						||
      , addEvent = function(type, callback) {
 | 
						||
        elem.addEventListener ? elem.addEventListener(type, callback, false) : elem.attachEvent('on' + type, callback);
 | 
						||
    }
 | 
						||
      , getStyle = elem.currentStyle ? function(name) {
 | 
						||
        var val = elem.currentStyle[name];
 | 
						||
 | 
						||
        if (name === 'height' && val.search(/px/i) !== 1) {
 | 
						||
            var rect = elem.getBoundingClientRect();
 | 
						||
            return rect.bottom - rect.top - parseFloat(getStyle('paddingTop')) - parseFloat(getStyle('paddingBottom')) + 'px';
 | 
						||
        }
 | 
						||
        ;
 | 
						||
        return val;
 | 
						||
    }
 | 
						||
    : function(name) {
 | 
						||
        return getComputedStyle(elem, null)[name];
 | 
						||
    }
 | 
						||
      , minHeight = parseFloat(getStyle('height'));
 | 
						||
 | 
						||
    elem.style.resize = 'none';
 | 
						||
 | 
						||
    var change = function() {
 | 
						||
        var scrollTop, height, padding = 0, style = elem.style;
 | 
						||
 | 
						||
        if (elem._length === elem.value.length)
 | 
						||
            return;
 | 
						||
        elem._length = elem.value.length;
 | 
						||
 | 
						||
        if (!isFirefox && !isOpera) {
 | 
						||
            padding = parseInt(getStyle('paddingTop')) + parseInt(getStyle('paddingBottom'));
 | 
						||
        }
 | 
						||
        ;scrollTop = document.body.scrollTop || document.documentElement.scrollTop;
 | 
						||
 | 
						||
        elem.style.height = minHeight + 'px';
 | 
						||
        if (elem.scrollHeight > minHeight) {
 | 
						||
            if (maxHeight && elem.scrollHeight > maxHeight) {
 | 
						||
                height = maxHeight - padding;
 | 
						||
                style.overflowY = 'auto';
 | 
						||
            } else {
 | 
						||
                height = elem.scrollHeight - padding + 10;
 | 
						||
                style.overflowY = 'hidden';
 | 
						||
            }
 | 
						||
            ;style.height = height + extra + 'px';
 | 
						||
            scrollTop += parseInt(style.height) - elem.currHeight;
 | 
						||
            //document.body.scrollTop = scrollTop;
 | 
						||
            //document.documentElement.scrollTop = scrollTop;
 | 
						||
            elem.currHeight = parseInt(style.height);
 | 
						||
        }
 | 
						||
        ;
 | 
						||
    };
 | 
						||
 | 
						||
    addEvent('propertychange', change);
 | 
						||
    addEvent('input', change);
 | 
						||
    addEvent('focus', change);
 | 
						||
    change();
 | 
						||
};
 | 
						||
 | 
						||
// 点击按钮复制功能
 | 
						||
function jsCopy() {
 | 
						||
    var e = document.getElementById("copy_rep_content");
 | 
						||
    e.select();
 | 
						||
    document.execCommand("Copy");
 | 
						||
}
 | 
						||
 | 
						||
// 使用resize事件监听窗口的zoom,如果zoom变化了,弹框提示;初始化时也检查zoom是否是100%。
 | 
						||
function _initZoomCheck() {
 | 
						||
    if (!IsPC()) {
 | 
						||
        // 手机端不需要提示
 | 
						||
        return;
 | 
						||
    }
 | 
						||
    var isNormalZoom = Math.round(window.devicePixelRatio * 100) === 100
 | 
						||
    if (!isNormalZoom) {
 | 
						||
        suofang();
 | 
						||
    }
 | 
						||
 | 
						||
    $(window).resize(function() {
 | 
						||
        var isNormalZoom = Math.round(window.devicePixelRatio * 100) === 100
 | 
						||
        if (!isNormalZoom) {
 | 
						||
            suofang();
 | 
						||
        } else {
 | 
						||
            $('.task-btn.task-btn-orange:visible').click()
 | 
						||
        }
 | 
						||
    })
 | 
						||
 | 
						||
}
 | 
						||
 | 
						||
var win_resize = function() {
 | 
						||
    var _w = $(window).width() - 1200;
 | 
						||
    if (_w < 0) {
 | 
						||
        $('.newHeader>.educontent').width('auto')
 | 
						||
    } else {
 | 
						||
        $('.newHeader>.educontent').width('1200px')
 | 
						||
    }
 | 
						||
};
 | 
						||
 | 
						||
function initWindowResize() {
 | 
						||
    if (location.pathname === '/login') {
 | 
						||
        // 登录页不需要
 | 
						||
        return;
 | 
						||
    }
 | 
						||
 | 
						||
    $(function() {
 | 
						||
        setTimeout(function() {
 | 
						||
            win_resize();
 | 
						||
        }, 1000)
 | 
						||
    })
 | 
						||
 | 
						||
    $(window).resize(function() {
 | 
						||
        win_resize()
 | 
						||
    })
 | 
						||
}
 | 
						||
initWindowResize();
 | 
						||
 | 
						||
// 登录刷新 https://stackoverflow.com/questions/28230845/communication-between-tabs-or-windows
 | 
						||
if (window['BroadcastChannel']) {
 | 
						||
    var bc = new BroadcastChannel('ec_reload');
 | 
						||
    bc.onmessage = function(ev) {
 | 
						||
        if (window['ec_reload_msg_send_window']) {
 | 
						||
            window['ec_reload_msg_send_window'] = false;
 | 
						||
        } else {
 | 
						||
            location.reload();
 | 
						||
        }
 | 
						||
    }
 | 
						||
}
 | 
						||
function _sendReloadMsg() {
 | 
						||
    var bc = new BroadcastChannel('ec_reload');
 | 
						||
    window['ec_reload_msg_send_window'] = true;
 | 
						||
    // 消息发出的窗口,不需要处理该消息
 | 
						||
    bc.postMessage('ec_reload');
 | 
						||
    /* send */
 | 
						||
}
 | 
						||
// IE11 没有 startsWith
 | 
						||
if (!String.prototype.startsWith) {
 | 
						||
    String.prototype.startsWith = function(searchString, position) {
 | 
						||
        position = position || 0;
 | 
						||
        return this.substr(position, searchString.length) === searchString;
 | 
						||
    }
 | 
						||
    ;
 | 
						||
    String.prototype.endsWith = function(search, this_len) {
 | 
						||
        if (this_len === undefined || this_len > this.length) {
 | 
						||
            this_len = this.length;
 | 
						||
        }
 | 
						||
        return this.substring(this_len - search.length, this_len) === search;
 | 
						||
    }
 | 
						||
    ;
 | 
						||
}
 | 
						||
 | 
						||
function clickNewsubscript() {
 | 
						||
    $(".newsubscript").hide();
 | 
						||
    $(".newedbox").addClass("newminheight");
 | 
						||
    $(".newedbox").removeClass("newedboxheight");
 | 
						||
}
 | 
						||
 | 
						||
/** tpm实训开启按钮,不允许多次点击  START                  */
 | 
						||
//点击模拟实战或者开启实战等,按钮变灰内容变成“开启中”
 | 
						||
var operationItem = null;
 | 
						||
var operationButtonOldValue = null;
 | 
						||
function opClickString(item) {
 | 
						||
    var value = $(item).html();
 | 
						||
    $(item).css({
 | 
						||
        'background': 'gray',
 | 
						||
        'border': '1px solid grey',
 | 
						||
        'pointer-events': 'none'
 | 
						||
    });
 | 
						||
    $(item).html('开启中');
 | 
						||
 | 
						||
    operationButtonOldValue = value
 | 
						||
    operationItem = item
 | 
						||
    // setTimeout(function(){ $(item).css('background', '#4CACFF');$(item).html(value); }, 4000)
 | 
						||
}
 | 
						||
// 
 | 
						||
// var isOperationSending = false;
 | 
						||
$(document).bind('ajaxStop', function(event, xhr, settings) {
 | 
						||
    if (settings && settings.url && (settings.url.match(/operation\?/))) {
 | 
						||
        if (operationItem) {
 | 
						||
            $(operationItem).css('background', '#4CACFF').css('pointer-events', 'inherit');
 | 
						||
            $(operationItem).html(operationButtonOldValue);
 | 
						||
        }
 | 
						||
    }
 | 
						||
});
 | 
						||
$(document).bind('ajaxError', function(event, xhr, settings) {
 | 
						||
    if (settings && settings.url && (settings.url.match(/operation\?/))) {
 | 
						||
        if (operationItem) {
 | 
						||
            $(operationItem).css('background', '#4CACFF').css('pointer-events', 'inherit');
 | 
						||
            $(operationItem).html(operationButtonOldValue);
 | 
						||
        }
 | 
						||
    }
 | 
						||
});
 | 
						||
/** tpm实训开启按钮,不允许多次点击  END                  */
 |