You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
pgfqe6ch8/public/javascripts/edu/application.js

1274 lines
49 KiB

6 years ago
/**
* Created by cxt on 2017/4/18.
*/
//---------------侧边固定提示功能---------------//
//
// window.onscroll=function(){
// var sl=-Math.max(document.body.scrollLeft,document.documentElement.scrollLeft);
// document.getElementById('nHeader').style.left=sl+'px';
// }
//= require jquery_ujs
$(function(){
//下拉框
$("[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").on("click", "p", 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 getRandom(min, max){
var r = Math.random() * (max - min);
var re = Math.round(r + min);
re = Math.max(Math.min(re, max), min);
return re;
}
// 邮箱验证
//功能根据用户输入的Email跳转到相应的电子邮箱首页
function gotoEmail($mail) {
$t = $mail;
$t = $t.toLowerCase();
if ($t == '163.com') {
return 'mail.163.com';
} else if ($t == 'vip.163.com') {
return 'vip.163.com';
} else if ($t == '126.com') {
return 'mail.126.com';
} else if ($t == 'qq.com' || $t == 'vip.qq.com' || $t == 'foxmail.com') {
return 'mail.qq.com';
} else if ($t == 'gmail.com') {
return 'mail.google.com';
} else if ($t == 'sohu.com') {
return 'mail.sohu.com';
} else if ($t == 'tom.com') {
return 'mail.tom.com';
} else if ($t == 'vip.sina.com') {
return 'vip.sina.com';
} else if ($t == 'sina.com.cn' || $t == 'sina.com') {
return 'mail.sina.com.cn';
} else if ($t == 'tom.com') {
return 'mail.tom.com';
} else if ($t == 'yahoo.com.cn' || $t == 'yahoo.cn') {
return 'mail.cn.yahoo.com';
} else if ($t == 'tom.com') {
return 'mail.tom.com';
} else if ($t == 'yeah.net') {
return 'www.yeah.net';
} else if ($t == '21cn.com') {
return 'mail.21cn.com';
} else if ($t == 'hotmail.com') {
return 'www.hotmail.com';
} else if ($t == 'sogou.com') {
return 'mail.sogou.com';
} else if ($t == '188.com') {
return 'www.188.com';
} else if ($t == '139.com') {
return 'mail.10086.cn';
} else if ($t == '189.cn') {
return 'webmail15.189.cn/webmail';
} else if ($t == 'wo.com.cn') {
return 'mail.wo.com.cn/smsmail';
} else if ($t == '139.com') {
return 'mail.10086.cn';
} else if ($t == 'educoder.net'){
return 'qiye.aliyun.com'
} else {
return 'qiye.aliyun.com';
}
};
//------------------弹框相关--------------------//
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");
}
}
// 公共弹框样式
// 建议左右栏的Width460Height190
// 建议宽屏对应值Width760Height500
function pop_box_new(value, Width, Height){
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>";
$(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"});
$("#popupWrap").parent().parent().show();
$('#popupWrap').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");
$("#popupWrap input, #popupWrap textarea, #popupWrap ul, #popupWrap a").mousedown(function(event){
event.stopPropagation();
new Drag("popupWrap");
});
}
// 两个按钮 点击确认跳转, 提示信息有两行
function op_confirm_box(url, str){
var htmlvalue = '<div class="task-popup" style="width:578px;"><div class="task-popup-title clearfix"><h3 class="fl color-grey3">提示</h3> <a href="javascript:void(0)" id="closeIcon" style="top: -48px;right: -20px;z-index: 100000;"><i class="iconfont icon-shanchudiao"></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" onclick="hideModal();">确定</a></div></div>';
pop_box_new(htmlvalue, 578, 205);
}
function reward(url){
//var base64 = new Base64();
//url = base64.encode(url);
var html="<p><input type='text' placeholder='请输入奖励的金币数量' class='task-form-100' name='score' id='reward_input' style='box-sizing: border-box;margin: 0px auto;'/></p>";
var htmlvalue = '<div class="task-popup" style="width:350px;"><div class="task-popup-title clearfix"><h3 class="fl color-grey3">奖励设置</h3> <a href="javascript:void(0)" id="closeIcon" style="top: -48px;right: -20px;z-index: 100000;"><i class="iconfont icon-shanchudiao"></i></a></div>'+
'<div class="task-popup-content"><p class="task-popup-text-center font-16" titile="请输入奖励的金币数量">' + html + '</p></div><div class="mt10 mb20 clearfix">' +
'<span class="color-orange fl none" id="reward_notice" style="margin-left: 15px;"><i class="fa fa-exclamation-circle mr5" ></i>奖励金币不能为空</span>' +
'<a href="javascript:void(0);" class="task-btn task-btn-orange fr mr15" onclick="reward_submit('+ "'"+ url + "'" +')">保存</a>'+
'<a href="javascript:void(0);" onclick="hideModal();" class="task-btn fr mr10">取消</a></div></div>';
pop_box_new(htmlvalue, 350, 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_sure_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-OK clearfix">'+
'<a href="javascript:void(0);" class="task-btn task-btn-orange" onclick="hideModal();">知道啦</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 long_notice_box(str){
var htmlvalue = '<div class="task-popup" style="width:575px;"><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, 575, 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 yes_notice_box(str){
var htmlvalue = '<div class="task-popup" style="width:575px;"><div class="task-popup-title clearfix"><h3 class="fl color-grey3">提示</h3></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);" class="task-btn task-btn-orange" onclick="hideModal();">知道啦</a></div></div>';
pop_box_new(htmlvalue, 575, 200);
}
//提示框:只有一个知道啦按钮,点击打开新窗口
//<a href="'+ url +'" class="pop_close"><i class="fa fa-times-circle font-18 link-color-grey fr mt5"></i></a>
function sure_box_redirect(url, str){
var htmlvalue = '<div class="task-popup" style="width:480px;"><div class="task-popup-title clearfix"><h3 class="fl color-grey3">提示</h3></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="'+ url +'" class="task-btn task-btn-orange" onclick="hideModal();" target="_blank">知道啦</a></div></div>';
pop_box_new(htmlvalue, 480, 160);
}
function sure_box_redirect_btn(url, str,btnstr){
var htmlvalue = '<div class="task-popup" style="width:480px;"><div class="task-popup-title clearfix"><h3 class="fl color-grey3">提示</h3></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="'+ url +'" class="task-btn task-btn-orange" onclick="hideModal();" target="_blank">'+btnstr+'</a></div></div>';
pop_box_new(htmlvalue, 480, 160);
}
function sure_box_redirect_btn2(url, str, btnstr){
var htmlvalue = '<div class="task-popup" style="width:500px;"><div class="task-popup-title clearfix">提示<a href="javascript:void(0)" id="closeIcon" style="top: -48px;right: -20px;z-index: 100000;"><i class="iconfont icon-shanchudiao"></i></a></div>'+
6 years ago
'<div class="task-popup-content"><p class="task-popup-text-center font-16">' + str + '</p></div><div class="task-popup-submit clearfix" style="width: 150px"><a href="javascript:void(0);" onclick="hideModal();" class="task-btn fl">取消</a>'+
'<a href="'+ url +'" class="task-btn task-btn-orange fr" target="_blank" onclick="hideModal();">'+btnstr+'</a></div></div>';
pop_box_new(htmlvalue, 578, 205);
}
//提示框:只有一个知道啦按钮,点击打开新窗口
//<a href="'+ url +'" class="pop_close"><i class="fa fa-times-circle font-18 link-color-grey fr mt5"></i></a>
function sure_box_redirect_without_newtab(url, str){
var htmlvalue = '<div class="task-popup" style="width:480px;"><div class="task-popup-title clearfix">提示</div>'+
6 years ago
'<div class="task-popup-content"><p class="task-popup-text-center font-16">' + str + '</p></div><div class="task-popup-OK clearfix">'+
'<a href="'+ url +'" class="task-btn task-btn-orange" onclick="hideModal();" >知道啦</a></div></div>';
pop_box_new(htmlvalue, 480, 160);
}
//按钮内容自定义
function sure_box_redirect_without_newtab_btn(url, str,btnstr){
var htmlvalue = '<div class="task-popup" style="width:480px;"><div class="task-popup-title clearfix">提示</div>'+
6 years ago
'<div class="task-popup-content"><p class="task-popup-text-center font-16">' + str + '</p></div><div class="task-popup-OK clearfix">'+
'<a href="'+ url +'" class="task-btn task-btn-orange" onclick="hideModal();" >'+btnstr+'</a></div></div>';
pop_box_new(htmlvalue, 480, 160);
}
//提示框:只有一个确定按钮,点击跳转
//<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">提示</div>'+
6 years ago
'<div class="task-popup-content"><p class="task-popup-text-center font-16">' + 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);
}
//提示框:只有一个确定按钮,点击跳转(局部刷新)
//<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_remote(url, str){
var htmlvalue = '<div class="task-popup" style="width:480px;"><div class="task-popup-title clearfix">提示</div>'+
6 years ago
'<div class="task-popup-content"><p class="task-popup-text-center font-16">' + str + '</p></div><div class="task-popup-sure clearfix">'+
'<a href="'+ url +'" class="task-btn task-btn-orange" data-remote="true">确定</a></div></div>';
pop_box_new(htmlvalue, 480, 160);
}
//重新登录
function re_entry(url){
var htmlvalue = '<div class="task-popup" style="width:480px;"><div class="task-popup-title clearfix"><h3 class="fl color-grey3">提示</h3><a href="'+ url +'" 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 mt10 mb10"><i class="fa fa-exclamation-circle color-orange04 mr10"></i>您的会话已退出,请重新登录^_^</p></div><div class="task-popup-right-sure clearfix">'+
'<a href="'+ url +'" class="task-btn task-btn-orange" data-remote="true">重新登录</a></div></div>';
pop_box_new(htmlvalue, 480, 160);
}
function reward_submit(url){
// var base64 = new Base64();
//url = base64.decode(url);
var score=$("input[name='score']").val();
console.log(score);
if($("input[name='score']").val() == ""){
$("#reward_notice").show();
}else{
$.ajax({
url: url,
dataType: 'script',
data:{score: score}
});
hideModal();
}
}
// 警告/提示弹框点击“x”关闭
$(function(){
$("button.task-close").live('click', function(){
$("button.task-close").parent().hide();
});
});
(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');
$("#user_verification_notice").html("");
$('#user_verification_notice').parent().hide();
}
};
})(jQuery);
//初始化省份
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;
}*/
}
}
function throttle(method, context, e) {
clearTimeout(method.tId);
method.tId = setTimeout(function () {
method.call(context, e);
}, 500);
}
function change_course_name(){
if($("#new_syllabus_id").val() != '0') {
$("#new_course_name").val($("#new_syllabus_id").find("option:selected").text());
$("#new_course_name").focus();
$("#new_course_syllabus_notice").hide();
}
}
function change_edit_course_name(){
var str = $("#course_real_name").val();
if($("#edit_syllabus_id").val() != '0') {
$("#edit_course_name").val($("#edit_syllabus_id").find("option:selected").text() + str);
$("#edit_course_syllabus_notice").hide();
}
}
//验证班级名称
function regex_course_name(str)
{
var name = $.trim($("#"+str+"_course_name").val());
var syl_title = "";
syl_title = $("#"+str+"_course_list").val().trim();
if(name.length < 2)
{
$("#"+str+"_course_name_notice").html('<i class="fa fa-exclamation-circle mr5" ></i>班级名称不能为空且至少有两个字符');
$("#"+str+"_course_name_notice").show();
return false;
}
else if(name.indexOf(syl_title) != 0){
$("#"+str+"_course_name_notice").html('<i class="fa fa-exclamation-circle mr5" ></i>请参照正确示例规范,应该以课程名称开头命名');
$("#"+str+"_course_name_notice").show();
$("#"+str+"_course_name").focus();
return false;
}
else
{
$("#"+str+"_course_name_notice").hide();
return true;
}
}
//验证班级学时
function regex_course_class_period(str)
{
var class_period = $.trim($("#"+str+"_class_period").val());
var regex = /^\d*$/;
if(class_period.length == 0)
{
return true;
}
else if (regex.test(class_period)) {
if(parseInt(class_period) > 0)
{
$("#"+str+"_course_class_period_notice").hide();
return true;
}
else
{
$("#"+str+"_course_class_period_notice").show();
return false;
}
}
else
{
$("#"+str+"_course_class_period_notice").show();
return false;
}
}
// 验证学分
function regex_course_credit(str){
var credit = $.trim($("#"+str+"_course_credit").val());
var regex1 = /^\d*$/;
var regex2 = /^\d+[.]*\d$/;
if(credit.length == 0)
{
return true;
}
else if (regex1.test(credit) || regex2.test(credit)) {
$("#"+str+"_course_credit_notice").hide();
return true;
} else{
$("#"+str+"_course_credit_notice").show();
return false;
}
// if(parseInt(credit) > 0)
// {
// $("#"+str+"_course_credit_notice").hide();
// return true;
// }
// else
// {
// $("#"+str+"_course_credit_notice").show();
// return false;
// }
// }
// else
// {
// $("#"+str+"_course_credit_notice").show();
// return false;
// }
}
//验证课程大纲
function regex_syllabus_option(str) {
if(document.getElementById(str + "_course_list")) {
var obj = document.getElementById(str + "_course_list");
if($("#"+str+"_course_list").val().trim() == ""){
$("#"+str+"_course_syllabus_notice").show();
return false;
} else{
$("#"+str+"_course_syllabus_notice").hide();
return true;
}
} else {
$("#"+str+"_course_syllabus_notice").hide();
return true;
}
}
function regex_end_date(str) {
var end_date = $.trim($("#"+str+"_course_end_date").val());
if(end_date != ""){
end_date = new Date(end_date);
end_date = formate_date(end_date);
var curr_date = new Date();
curr_date = formate_date(curr_date);
if(curr_date >= end_date){
$("#"+str+"_course_end_date_notice").show();
return false;
} else{
$("#"+str+"_course_end_date_notice").hide();
return true;
}
} else {
$("#"+str+"_course_end_date_notice").hide();
return true;
}
}
//提交新建课程
function submit_new_course()
{
var submit = false;
if(regex_syllabus_option('new')&&regex_course_name('new'))
{
submit = true;
if($.trim($("#new_class_period").val()) != ""){
submit = submit && regex_course_class_period('new');
}
if($.trim($("#new_course_credit").val()) != ""){
submit = submit && regex_course_credit('new');
}
if($.trim($("#new_course_end_date").val()) != ""){
submit = submit && regex_end_date('new')
}
}
if(submit){
$("#new_course").submit();
}
}
function submit_edit_course(id)
{
var submit = false;
if(regex_syllabus_option('edit')&&regex_course_name('edit'))
{
submit = true;
if($.trim($("#edit_class_period").val()) != ""){
submit = submit && regex_course_class_period('edit');
}
if($.trim($("#edit_course_credit").val()) != ""){
submit = submit && regex_course_credit('edit');
}
/*if($.trim($("#edit_course_end_date").val()) != ""){
submit = submit && regex_end_date('edit')
}*/
}
if(submit){
$("#edit_course_"+id).submit();
}
}
function submit_update_course_module(){
var check = true;
var scroll = true;
for(var i=0; i< $("input.input_name").length; i++){
var obj = $($("input.input_name")[i]);
if(obj.val().trim() == ""){
$(obj).addClass("bor-red");
check = false;
if(scroll){
$(document).scrollTop(parseInt(obj.offset().top)-150);
scroll=false;//已经定位后、后续报错部分就不用定位了
}
} else{
$(obj).removeClass("bor-red");
}
}
if(check){
$("#update_course_module").submit();
}
}
function formate_date(date){
var str = "";
var year = date.getFullYear();
var month = date.getMonth() + 1;
var day = date.getDate();
if(month < 10) {
month = '0' + month;
}
if(day < 10) {
day = '0' + day;
}
str = year + '-' + month + '-' + day;
return str;
}
//textarea自适应高度 纯js写的 有浏览器判断
/**
* 文本框根据输入内容自适应高度
* @param {HTMLElement} 输入框元素
* @param {Number} 设置光标与输入框保持的距离(默认0)
* @param {Number} 设置最大高度(可选)
*/
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();
};
var autoTextarea2 = function (elem,elem2, extra, maxHeight) {
extra = extra || 0;
var isFirefox = !!document.getBoxObjectFor || 'mozInnerScreenX' in window,
isOpera = !!window.opera && !!window.opera.toString().indexOf('Opera'),
addEvent = function (element, type, callback) {
element.addEventListener ?
element.addEventListener(type, callback, false) :
element.attachEvent('on' + type, callback);
},
getFirstStyle = 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(getFirstStyle('paddingTop')) -
parseFloat(getFirstStyle('paddingBottom')) + 'px';
};
return val;
} : function (name) {
return getComputedStyle(elem, null)[name];
},
minHeight = parseFloat(getFirstStyle('height'));
elem.style.resize = 'none';
elem2.style.resize = 'none';
var change = function () {
var scrollTop, height,
padding = 0,
style = elem.style,
style2 = elem2.style;
if (elem._length === elem.value.length) return;
elem._length = elem.value.length;
elem2._length = elem._length;
if (!isFirefox && !isOpera) {
padding = parseInt(getFirstStyle('paddingTop')) + parseInt(getFirstStyle('paddingBottom'));
};
scrollTop = document.body.scrollTop || document.documentElement.scrollTop;
elem.style.height = minHeight + 'px';
elem2.style.height = minHeight + 'px';
if (elem.scrollHeight > minHeight) {
if (maxHeight && elem.scrollHeight > maxHeight) {
height = maxHeight - padding;
style.overflowY = 'auto';
style2.overflowY = 'auto';
} else {
height = elem.scrollHeight - padding;
};
style.height = height + extra + 'px';
style2.height = height + extra + 'px';
scrollTop += parseInt(style.height) - elem.currHeight;
document.body.scrollTop = scrollTop;
document.documentElement.scrollTop = scrollTop;
elem.currHeight = parseInt(style.height);
};
if (elem2.scrollHeight > minHeight) {
if (maxHeight && elem2.scrollHeight > maxHeight) {
height = maxHeight - padding;
style.overflowY = 'auto';
style2.overflowY = 'auto';
} else {
height = elem2.scrollHeight - padding;
};
style.height = height + extra + 'px';
style2.height = height + extra + 'px';
scrollTop += parseInt(style2.height) - elem2.currHeight;
document.body.scrollTop = scrollTop;
document.documentElement.scrollTop = scrollTop;
elem2.currHeight = parseInt(style2.height);
};
};
addEvent(elem, 'propertychange', change);
addEvent(elem, 'input', change);
addEvent(elem, 'focus', change);
addEvent(elem2, 'propertychange', change);
addEvent(elem2, 'input', change);
addEvent(elem2, 'focus', change);
change();
};
function formate_time(time){
var str = "";
var year = time.getFullYear();
var month = time.getMonth() + 1;
var day = time.getDate();
var hour = time.getHours();
var min = time.getMinutes();
if(month < 10) {
month = '0' + month;
}
if(day < 10) {
day = '0' + day;
}
if(hour < 10) {
hour = '0' + hour;
}
if(min < 10) {
min = '0' + min;
}
str = year + '-' + month + '-' + day + ' ' + hour + ':' + min;
return str;
}
function formate_time_s(time){
var str = "";
var year = time.getFullYear();
var month = time.getMonth() + 1;
var day = time.getDate();
var hour = time.getHours();
var min = time.getMinutes();
var sec = time.getSeconds();
if(month < 10) {
month = '0' + month;
}
if(day < 10) {
day = '0' + day;
}
if(hour < 10) {
hour = '0' + hour;
}
if(min < 10) {
min = '0' + min;
}
if(sec < 10) {
sec = '0' + sec;
}
str = year + '-' + month + '-' + day + ' ' + hour + ':' + min + ":" + sec;
return str;
}
function submit_send_res_to_course(){
if($("input[name='course_ids[]']:checked").length >= 1){
$("#search_course_notice_h").html("").hide();
$("#course_list_form").submit();
hideModal();
}else{
$("#search_course_notice_h").html("请先选择一个班级").show();
}
}
function regex_major()
{
if($("#shixun_major").val() == "0")
{
$("#shixun_major_notice").show();
return false;
}
else
{
$("#shixun_major_notice").hide();
return true;
}
}
function checkLesson(item){
if($("#shixun_major").val() == "0") {
$("#shixun_major_course_notice").html("请先选择适用专业").show();
} else{
var showul=$(item).find("ul").attr("showul");
if(showul=="0"){
$(item).find("ul").show();
$(item).find("ul").attr("showul","1");
if($(item).find("ul input").length>5){
$(item).find("ul").css("overflow-y","scroll");
}
event.stopPropagation();
}else{
$(item).find("ul").hide();
$(item).find("ul").attr("showul","0");
event.stopPropagation();
}
}
}
function shixun_link(shixun){
window.open('/shixuns/' + shixun);
}
function subject_link(id){
window.open('/paths/' + id);
}
function editor_focus(id){
// window.location.href = "#mao"+id;
// var top=$(document).scrollTop();
// $(document).scrollTop(parseInt(top)-70);
$('html, body').animate({
scrollTop: parseInt($("#mao"+id).offset().top)-70
}, 1000);
$("textarea[nhname='new_message_textarea_"+id+"']").focus();
}
var d_lastSearchCondition = '';
function search_course_list(e){
var str = $(e.target).val().trim();
if (str == d_lastSearchCondition && str != '') {//如果输入框没有改变或者输入框为空就返回
return;
}
d_lastSearchCondition = str;
$(".course_list_ul").empty();
search_course_ajax(str);
}
function search_course_ajax(str){
$.ajax({
url: '/courses/search_course_list',
data: {search: str},
type: 'post',
success: function (data) {
if(data.courses.length > 0){
$(".course_list_ul").empty();
for(var i=0; i<data.courses.length; i++){
$(".course_list_ul").append("<li><p data-val='"+data.courses[i][0]+"' id='course_list_"+data.courses[i][1]+"'>" + data.courses[i][0] + "</p></li>");
}
$(".course_list_ul").show();
if($(".course_list_ul").find("li").length>5){
$(".course_list_ul").css("overflow-y","scroll");
} else{
$(".course_list_ul").css("overflow-y","hidden");
}
} else{
$(".course_list_ul").hide();
}
}
});
}
function Base64() {
// private property
_keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
// public method for encoding
this.encode = function (input) {
var output = "";
var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
var i = 0;
input = _utf8_encode(input);
while (i < input.length) {
chr1 = input.charCodeAt(i++);
chr2 = input.charCodeAt(i++);
chr3 = input.charCodeAt(i++);
enc1 = chr1 >> 2;
enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
enc4 = chr3 & 63;
if (isNaN(chr2)) {
enc3 = enc4 = 64;
} else if (isNaN(chr3)) {
enc4 = 64;
}
output = output +
_keyStr.charAt(enc1) + _keyStr.charAt(enc2) +
_keyStr.charAt(enc3) + _keyStr.charAt(enc4);
}
return output;
}
// public method for decoding
this.decode = function (input) {
var output = "";
var chr1, chr2, chr3;
var enc1, enc2, enc3, enc4;
var i = 0;
input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
while (i < input.length) {
enc1 = _keyStr.indexOf(input.charAt(i++));
enc2 = _keyStr.indexOf(input.charAt(i++));
enc3 = _keyStr.indexOf(input.charAt(i++));
enc4 = _keyStr.indexOf(input.charAt(i++));
chr1 = (enc1 << 2) | (enc2 >> 4);
chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
chr3 = ((enc3 & 3) << 6) | enc4;
output = output + String.fromCharCode(chr1);
if (enc3 != 64) {
output = output + String.fromCharCode(chr2);
}
if (enc4 != 64) {
output = output + String.fromCharCode(chr3);
}
}
output = _utf8_decode(output);
return output;
}
// private method for UTF-8 encoding
_utf8_encode = function (string) {
string = string.replace(/\r\n/g,"\n");
var utftext = "";
for (var n = 0; n < string.length; n++) {
var c = string.charCodeAt(n);
if (c < 128) {
utftext += String.fromCharCode(c);
} else if((c > 127) && (c < 2048)) {
utftext += String.fromCharCode((c >> 6) | 192);
utftext += String.fromCharCode((c & 63) | 128);
} else {
utftext += String.fromCharCode((c >> 12) | 224);
utftext += String.fromCharCode(((c >> 6) & 63) | 128);
utftext += String.fromCharCode((c & 63) | 128);
}
}
return utftext;
}
// private method for UTF-8 decoding
_utf8_decode = function (utftext) {
var string = "";
var i = 0;
var c = c1 = c2 = 0;
while ( i < utftext.length ) {
c = utftext.charCodeAt(i);
if (c < 128) {
string += String.fromCharCode(c);
i++;
} else if((c > 191) && (c < 224)) {
c2 = utftext.charCodeAt(i+1);
string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
i += 2;
} else {
c2 = utftext.charCodeAt(i+1);
c3 = utftext.charCodeAt(i+2);
string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
i += 3;
}
}
return string;
}
}
//for(i=0;i<$("i").length;i++){
// var $TipContent = $("i").eq(i).attr("title");
// $("i").eq(i).attr("title","").attr("data-tip-down",$TipContent);
//}
//console.log($("i").length);
//判断是手机端还是电脑端
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;
}
var wait = 60;
function time(btn){
if (wait==0) {
$(btn).addClass("btn_orange_bg");
btn.removeAttribute("disabled");
btn.innerHTML = "获取验证码";
wait = 60;
return;
}else{
$(btn).removeClass("btn_orange_bg");
btn.setAttribute("disabled", "disabled");
btn.innerHTML = wait + "s后重试";
wait--;
}
setTimeout(function(){
time(btn);
},1000);
}