要做的事

pagecache就是单页面切换之后缓存切换过的页面,历史记录后退直接从内存加载,体验更流畅一些

quickling就是后端渲染但是前端体验是单页面,俗称pjax http://huntnews.in/


fiddler  检测线上bug

less  bootstrap  placeholder-jq插件   表单验证

  js里面写模板参考mk 的注册页面  还有view-source:https://account.xiaomi.com/pass/register 小米页面

https://account.xiaomi.com/static/res/64371/scripts/common/more/placeholder.js

NProgress.js:http://ricostacruz.com/nprogress/

nanobar.js:http://nanobar.micronube.com/



1、

css画箭头 类似淘宝首页

css 多余的现实省略号, px em rem的区别。  

2、table 1px边框

3、ie6兼容 fixed

多行文本截断为省略号
多行文字垂直居中
删除两边空格
http://www.w3cfuns.com/blog-5441802-5399174.html

事件阻止

1、商城详细页 限制字数
看百度云盘的电子书
2、 解决滑动事件,封装起来
3、 jq 选择多个选择器,或绑定多个事件的写法
4、 给函数参数 用对象传参

css -sprite  --  cssgaga



孔浩的JS面向对象


iframe 跨域 
seajs, 
间歇性滚动,无缝滚动,幻灯片,手机幻灯片,
图片预加载,懒性加载,
gfn网址   
正则表达式,
字符串处理
组件的开发
jq怎么自定义回调函数
jq每个版本的更新和舍弃的api


querySelector

html5,


1、不能放大缩小,meta
2、html5相册组件 
3、自动隐藏地址栏 
4、内容高度不够一个屏幕的时候为一个屏幕的高度

hammer,zeptojs,touchjs,isscroll,   (fastclick ,tap.js   click 300ms延迟怎么解决)


程序员常用的一些工具 :http://www.topthink.com/topic/2823.html

w3cfuns按需加载js







频繁的更改首页或者详情图片,和幻灯。
了解t.js  360 购票源码
正则表达式 怎么定义 new regexp();
<script>
        a=1;
        b=(a++);
    alert(b)

    </script>




孔浩的JS面向对象


iframe 跨域 
seajs, 
间歇性滚动,无缝滚动,幻灯片,手机幻灯片,
图片预加载,懒性加载,
gfn网址   
正则表达式,
字符串处理
组件的开发
jq怎么自定义回调函数




html5,
1、不能放大缩小,meta
2、html5相册组件 
3、自动隐藏地址栏 
4、内容高度不够一个屏幕的时候为一个屏幕的高度


IOTEKTXCJ378397572 


频繁的更改首页或者详情图片,和幻灯。
了解t.js  360 购票源码
正则表达式 怎么定义 new regexp();
<script>
        a=1;
        b=(a++);
    alert(b)
    </script>


谷歌开发这工具 audits
走进小米。。。。

greensock ,

Velocity.js

modal.js







阿狸:圆心、 
  一、1、性能优化、2、工程化、3、html5
  二、契机:多终端、nodejs
  三、探索:无线开发、框架&模式(jq、zepto框架、angralerjs模式)、前后端分离、工程化


第三方平台
  fastclick插件
  spa






淘宝:淘宝旅行网
1.hybrid -- 
  a/离线数据  将 js css 图片,等数据打包成zip,防止用户本地作为请求
  b/h5和native的桥接




appjs amazeul


var JK_lock ="open";
(function ($) {
	var clicknumber = 0;
	var methods = {
		init: function (options) {	},
		pop: function (options) {//弹出层
			var _H = $(window).height() ;
			var _W = $(window).width() ;
			var jumpstop = 0;
			var stop=1;
			/*
			* options.width(number)	弹出层宽度(必选)
			* options.height(number) 弹出层高度(必选)
			* options.zIndex(number) 弹出层index轴 ,默认为9999;(可选)
			* options.poparent(jquery节点) 要插入的父节点,默认为‘body’(可选)
			* options.opacity(0~1) 背景透明度(可选)
			* option.popId(jqeury节点 ) 要插入的弹出层ID或者calss,最好为ID,强调唯一性!(必选)
			* option.popHtml(插入弹出层元素结构) 如“<div id='test'></div>";(可选)
			* option.popFunc(function方法) 弹出层回调方法;(可选)
			* option.closePop(function方法) 关闭回调方法;(可选)
			* option.time(1~100000)//X秒跳转,X为整数,如:1为1秒(可选)
			* option.timeId(id)//为一个ID节点,用来储存时间显示(可选)
			* option.url(URL)//一个链接,倒计时跳转路径。(可选)
			* 关闭按钮约定名称为 calss = popclose;(可选)
			* */
			var settings = {
				'width': 100,
				'height':100,
				'zIndex':9999,
				'poparent':'body',
				'opacity':0.5,
				'popId':null,
				'popHtml':null,
				'popFunc':null,
				'time':null,
				'timeId':null,
				'url':null,
				'closePop':null
			};
			// 如果存在选项,则合并之
			if (options) {
				$.extend(settings, options);
			}
			var popTop;
			var popLeft = (_W - settings.width) / 2;
			if(settings.popHtml === null) {
				return this.each(function () {
					var $this = $(this);
					if(settings.height =='auto'){
						settings.height=$this.height();
					};
					popTop = (_H - settings.height) / 2;
					$this.show();
					$this.css({width: settings.width, height: settings.height, zIndex: settings.zIndex, top: popTop, left: popLeft,position: 'fixed'});
					closebox();
					if(settings.time !== null ){
						jump(settings.time,settings.timeId,settings.url);
					}
				});
			}else if(settings.popHtml !==null){
				$(settings.poparent).append(settings.popHtml);
				if(settings.height =='auto'){
					settings.height=$(settings.popId).height();
				};
				popTop = (_H - settings.height) / 2;
				$(settings.popId).css({width: settings.width, height: settings.height, zIndex: settings.zIndex, top: popTop, left: popLeft,position: 'fixed'});
				closebox()
			};
			function closebox(){
				if(settings.popFunc !== null) {
					settings.popFunc()
				};
				var backlayer ="<div id='blacklayer'></div>"
				$("body").append(backlayer);
				var dh = $(document).height();

				$('#blacklayer').css({zIndex:settings.zIndex-10,background:"#000",opacity:settings.opacity,position:'absolute',left:0,top:0,width:'100%',height:dh})
				$('.popclose').bind("click",function(){
					stop=0;
					$('#blacklayer').remove();
					if(settings.popHtml === null){
						$(settings.popId).hide();
					} else{
						$(settings.popId).remove();
					}
					if(settings.closePop!=null){
						settings.closePop();
					}
				})
			}

			if(settings.time !== null ){

				jump(settings.time,settings.timeId,settings.url);
			}
				function jump (time,element_id,url) { //X秒跳转
					if(stop===0) return false
				_jumpfunc =	window.setTimeout(function(){
					time--;
					if(time > 0) {
						if(jumpstop== 1 ){
							return false;
						} else{

							$(element_id).html(time+"秒");
							jump(time,element_id,url)
						}
					} else {
						if(url ==null){
							$('#blacklayer').remove();
							$(settings.popId).remove();
						} else{
							document.location=url;
						}
					}
				}, 1000);
			}
		},
		tag: function (options) {//标签切换
			var settings={
				'type':"click",
				'selected':'on',
				'contentClass':'.content',
				'func':null
			};
			// 如果存在选项,则合并之
			if (options) {
				$.extend(settings, options);
			}
			if(settings.type != 'click' && settings.type != 'mouseover' ) return false;
			$(this).eq(0).addClass(settings.selected);
			return this.each(function(){
				var $this = $(this);
				$(settings.contentClass).hide();
				$(settings.contentClass).eq(0).show();
				$this.bind(settings.type,contentShow);
				function contentShow(){
					var _index = $this.index();
					$this.siblings().removeClass(settings.selected);
					$this.addClass(settings.selected);
					$(settings.contentClass).hide();
					$(settings.contentClass).eq(_index).show();
					if(settings.func!=null){
						settings.func();
					}
				}
			})
		},
		imgmove: function(options){//多小图片幻灯
			var settings = {
				oneEle:null,
				oneWidth:null,
				loop:false,
				boxWidth:null,
				prev:null,
				next:null
			}
			// 如果存在选项,则合并之
			if (options)
			{
				$.extend(settings, options);
			}
			function movefunc(){
				var number = $(settings.oneEle).size();
				var length =number*settings.oneWidth;
				var boxlen = length/settings.boxWidth;
				if(boxlen%settings.boxWidth > 0){
					boxlen+1;
				}
				var par =	$(settings.oneEle).parent();
				if (settings.loop== true){
					$(settings.oneEle).parent().width(length).css("left",-settings.oneWidth);
					var par =  $(settings.oneEle).parent();
					var li = $(settings.oneEle).last();
					par.prepend(li.clone())
					li.remove();
				} else{
					$(settings.oneEle).parent().width(length);
				}
				$(settings.prev).click(function(){
					if (settings.loop== true){
						var li = $(settings.oneEle).last();
						TweenMax.to(par, 1, {left:0,onComplete:function(){
							 par.prepend(li.clone())
							 par.css("left",-settings.oneWidth);
							$(settings.oneEle).last().remove();
						},ease:Quart.easeOut});
					} else{
						if(clicknumber>0){
							clicknumber--;
							TweenMax.to( par, 1, {left:-settings.boxWidth*clicknumber,ease:Quart.easeOut});
							
						};
					}
				});
				$(settings.next).click(function(){
					if (settings.loop== true){
						TweenMax.to(par, 0.4, {left:-settings.oneWidth,onComplete:function(){
							par.css("left","0px");
							var li = $(settings.oneEle).slice(0, 1);
							par.append(li.clone())
							$(settings.oneEle).slice(0, 1).remove();
							console.log("ok")
						},ease:Quart.easeOut});
					} else{
						if(clicknumber<boxlen-1){
							clicknumber++
							TweenMax.to(par, 1, {left:-settings.boxWidth*clicknumber,ease:Quart.easeOut});
						}
					}
				});
			}
			movefunc();
		}
	};
	$.fn.tooltip = function (method) {
		// Method calling logic
		if (methods[method]) {
			return methods[ method ].apply(this, Array.prototype.slice.call(arguments, 1));
		} else if (typeof method === 'object' || !method) {
			return methods.init.apply(this, arguments);
		} else {
			$.error('Method ' + method + ' does not exist on jQuery.tooltip');
		}
	};
})( jQuery );
var $j = $ = jQuery.noConflict();
var JKXY ={};
JKXY.Browser = {
	IE: !!( window.attachEvent && !window.opera ),
	IE6: (/msie\s*(\d+)\.\d+/g.exec(navigator.userAgent.toLowerCase()) || [0, "0"])[1] == "6",
	IE7: navigator.userAgent.indexOf('MSIE 7.0') > -1,
	IE8: navigator.userAgent.indexOf('MSIE 8.0') > -1,
	IE9: navigator.userAgent.indexOf('MSIE 9.0') > -1
}
//图片数组
JKXY.ImgList=[
	'images/abc.png',
	'images/footzc.jpg',
	'images/icon.png',
	'images/icon1.png',
	'images/icon2.png',
	'images/icon3.png',
	'images/icon4.png',
	'images/icon5.png',
	'images/icon6.png',
	'images/learnhow.jpg',
	'images/learnwhat.jpg',
	'images/lesson-img.png',
	'images/andriod.png',
	'images/cocos2d.png',
	'images/ios.png',
	'images/java.png',
	'images/html5.png',
	'images/gotop2.jpg',
	'images/gotop.jpg',
	'images/erwma.png'
];
JKXY.NUMBER=0;
JKXY.number={
	lunbo:0 //语言轮播计数器
};
JKXY.popHtml =function(html_id, content, tit ) {
	var html = '<div class="dialog" id="'+html_id+'">';
	html += '<div class="dialog-box">';
	html+=' <h3><i class="popclose"></i>'+tit+'</h3>';
	html += '<div class="dialog-body">';
	html += content;
	html += '</div>';
	html += '</div>';
	return html;
};



JKXY.CJT={
	init:function(){
		this.loading(JKXY.ImgList);
		this.navflex();
		this.indexNav();
		this.bindElem();
		this.GoTop();
		this.learnWhatNav();
		this.fourText();
		this.checkbwoer();
		this.lessonNavHover();
		this.timeCare();
		this.TopSearch();
	},
	checkbwoer:function(){
		var	browser="<div id='B-blacklayer'></div>";
		browser+="<div id='browser'>";
		browser+="<div class='b-title'>使用一款<strong>优质浏览器,是成为极客</strong>的关键一步!</div>";
		browser+="<p>您正在使用的浏览器内核版本过低,除了有可能遭受病毒与恶意软件的侵袭之外,也无法体验到最新互联网技";
		browser+="术带来的优质显示与交互效果。极客学院网站大量使用了HTML5与CSS3技术,为确保您能够体验到最佳的";
		browser+="浏览效果,我们推荐您选择使用下列最新的优质浏览器:</p>";
		browser+=" <div class='downloading'>";
		browser+="<a href='http://www.firefox.com.cn/download/' target='_blank'><img src='"+cdn_url+"images/firefox.png' /> </a>";
		browser+="<a href='http://wirrorcdn.qiniudn.com/software/browser/ChromeStandaloneSetup.Win.38.0.2125.111.exe' target='_blank'><img src='"+cdn_url+"images/chrome.png' /> </a>";
		browser+="<a href='http://windows.microsoft.com/zh-cn/internet-explorer/ie-11-worldwide-languages/' target='_blank'><img src='"+cdn_url+"images/ie.png' /></a>";
		browser+="<a href='http://support.apple.com/kb/DL1531' target='_blank'><img src='"+cdn_url+"images/safari.png' /> </a>";
		browser+=" </div></div>";

		if( JKXY.Browser.IE){
			if(JKXY.Browser.IE6 || JKXY.Browser.IE7 || JKXY.Browser.IE8 ){
				$("body").append(browser);
				var H = $(document).height();
				var H2 = $(window).height();
				if(H>=H2){
					$('#B-blacklayer').height(H)
				} else{
					$('#B-blacklayer').height(H2)
				}
			}
		}
	},
	login:function(n,text){
		var warning;
		 switch (n)
		 {
			 case 0:
				 warning = "<div class='web-dia-tip waring-success' id='warning'>"+text+"</div>";
				 break;
			 case 1:
				 warning = "<div class='web-dia-tip waring-failure' id='warning'>"+text+"</div>";
				 break;
			 case 2:
				 warning = "<div class='web-dia-tip waring-sub' id='warning'>"+text+"</div>";
				 break;
			 default:
				alert("参数,0:成功,1:失败,2:登录中..")
		 }
		 $('body').append( warning );
		 var _W = -$j('#warning').width()/2-20;
		$j('#warning').css("marginLeft",_W)
		 $('#warning').animate({top:"0px",opacity:1},300,function(){
			 $('#warning').delay(900).animate({top:"-50px",opacity:0},500,function(){
				 $('#warning').remove();
			 })
		 });

	},
	bindElem:function(){
		//$j('.subscibe_submit').bind("click",this.BottomButtonSearch);
		//$j('.searchbox i').bind("click",this.TopSearch);
		//$j("input[name='subscibe_email']").bind("click",this.BottomSearch);

		$j(".headsearch").bind( "click", JKXY.CJT.webHeaderSearch );
		$("#headsearch .search-btn").bind( "click", JKXY.CJT.webHeaderSearch );
		$j(".footsearch").bind( "click", JKXY.CJT.webFootSearch );
		$j('#user-name,.user-center,#user-name p').bind("mouseover",this.userContent);
		$j('.lesson-list li').hover(
			JKXY.CJT.lessonHover,
			JKXY.CJT.lessonOut
		)
	},
	userContent:function(){//头部用户中心下拉
		$j('.user-center').show();
		$j('.jiaotou').addClass("rotate");
		JKXY.CJT.stopEventBubble();
		$j(document).bind("mouseover",function(){
			$j('.user-center').hide();
			$j('.jiaotou').removeClass("rotate");
		});
	},
	indexNav:function(){//首页导航切换
		/*$j(".nav a").tooltip("tag",{
			'type':"mouseover",
			'selected':'on',
			'contentClass':'.content-one',
			'func':function(){
				var _index = $j(this).index();
				$j('.learnav-content').show();
				JKXY.CJT.stopEventBubble();
			}
		});
		$j(".nav a").eq(0).removeClass("on");
		$j('.navbox,.learnav-content').bind("mouseover",function(){
			$j('.learnav-content').show();
			JKXY.CJT.stopEventBubble();
		})
		// $j(document).unbind();
		$j(document).bind("mouseover",function() {
			$j('.learnav-content').hide();
			$j(".nav a").removeClass("on");
		});*/
	},
	fourText:function(){//首页四话轮播
		var _text =[
			"<span>学习最新实战教程</span>迅速提升开发实力",
			"<span>知识碎片化</span>自由规划学习周期",
			"<span>深入浅出系统学习</span>快速掌握感兴趣的技术",
			"<span>提升技术实力</span>迅速获得高薪"
		]
		$j('#fourtext').css({opacity:0}).animate({"opacity": 1},1000).delay(1000).animate({opacity:0},1000);
		setInterval(lunbo,3000);
		function lunbo(){
			if(JKXY.number.lunbo>3){
				JKXY.number.lunbo=0;
			}
			$j('#fourtext').animate({"opacity": 1},1000);
			$j('#fourtext').html(_text[JKXY.number.lunbo]).delay(1000).animate({"opacity": 0},1000);
			JKXY.number.lunbo++;
		}
	},
	learnWhatNav:function(){ //首页学什么导航
		$j('.learn-nav li').tooltip("tag",{
			'type':"mouseover",
			'selected':'on',
			'contentClass':'.lessoncontent',
			'func':function(){
				$j('.lessonbox').show();
				JKXY.CJT.stopEventBubble();
			}
		})
		$j('.learn-nav li').eq(0).removeClass("on");
		$j('.lessonbox,.lessoncontent').bind("mouseover",function(){
			$j('.lessonbox').show();
			JKXY.CJT.stopEventBubble();
		})
		//$j(document).unbind();
		$j(document).bind("mouseover",function() {
			$j('.lessonbox').hide();
			$j('.learn-nav li').removeClass("on");
		});
	},
	navflex:function(){//头部定位
		$j(document).scroll(
			function(){
				var _top = $j(document).scrollTop();
                var margTop = $('#header').innerHeight();
				if(_top>margTop){

					$j('#navbox').addClass("flex");
					var _w =	$j('.loginbox').innerWidth()+2;
				} else{
					$j('#navbox').removeClass("flex");
					$j('.loginbox').removeClass("loginflex");

				}
			});
	},
	stopEventBubble: function(){//阻止冒泡事件
		function getEvent(){
			if(window.event)	{return window.event;}
			func=getEvent.caller;
			while(func!=null){
				var arg0=func.arguments[0];
				if(arg0){
					if((arg0.constructor==Event || arg0.constructor ==MouseEvent
						|| arg0.constructor==KeyboardEvent)
						||(typeof(arg0)=="object" && arg0.preventDefault
							&& arg0.stopPropagation)){
						return arg0;
					}
				}
				func=func.caller;
			}
			return null;
		}


		var e=getEvent();
		if(window.event){
			//e.returnValue=false;//阻止自身行为
			e.cancelBubble=true;//阻止冒泡
		}else if(e.preventDefault){
			//e.preventDefault();//阻止自身行为
			e.stopPropagation();//阻止冒泡
		}
	},
	loading:function(a){//头部loadding
		var len = a.length;
		var le=$j('.loading-length');
		for(var i=0; i<len; i++){
			var img = new Image();
			img.οnlοad=function(){
				JKXY.NUMBER++;
				le.animate({width:$j(window).width() / len *JKXY.NUMBER},50)
			};
			img.src= cdn_url+a[i];
			(function(img){
				return img.onerror = function(){
					console.log(img.src+"缺少图片")
				};
			})(img);

			if(i==len-1){

				$j(window).resize(function(){
					var wen = parseInt($j(window).width());
					$j('.loading-length').width(wen)

				})
			}
		}
	},

	TopSearch:function(){//头部搜索

		$("input[name='q']").bind("focus",function(){
		   $('.search-btn').addClass("search-btn2");
		   $('.hot-words').hide()
		   //$('.keyword-list').show();
		   $(this).css({paddingRight: "55px"});

		});
		$("input[name='q']").bind("focusout",function(){
			$('.search-btn').removeClass("search-btn2");
			$('.hot-words').show();
			//setTimeout(function(){$('.keyword-list').hide()},100);
			//$('.keyword-list').delay(200).hide();
		});
		$('#J_keywordList .result-list').delegate('.current' , "click",function(){
			var val = $(this).text();
			$("input[name='q']").val(val);
			//$('.keyword-list').delay(200).hide();

		})
	},
	BottomSearch:function(){//尾部回车搜索
		$j(document).unbind("keydown");
		$(document).bind("keydown",function(event){
			if(event.keyCode ==13){
				//$("form.headsearch").submit();
				//获取搜索form下的两个input元素,获取两个元素的值
				var _focusEle = document.activeElement.id;
				if(_focusEle == 'subscibe_email') {
					var _t = $("div.footsearch input")[0].value;
					var _q = $("div.footsearch input")[1].value;
					if(!_q) {
						alert("关键词不能为空!");
						return;
					}
					var _host = location.host;
					var _search_host = _host.replace(/\w+/,"search");
					var _url = 'http://'+_search_host+'/s/' + 't_' + _t + '|q_' + encodeURIComponent(_q) + '|sfilter_1';
					location.href = _url;
				}
			}
		});
	},
	BottomButtonSearch:function(){//尾部按钮搜索	
		var _t = $("div.footsearch input")[0].value;
		var _q = $("div.footsearch input")[1].value;
		if(!_q) {
			alert("关键词不能为空!");
			return;
		}
		var _host = location.host;
		var _search_host = _host.replace(/\w+/,"search");
		var _url = 'http://'+_search_host+'/s/' + 't_' + _t + '|q_' + encodeURIComponent(_q) + '|sfilter_1';
		location.href = _url;
	},
	// 网站全站搜索,替代 TopSearch、BottomSearch、BottomButtonSearch三个方法
	webHeaderSearch: function(){
		$(document).unbind("keydown");
		// 点击icon小图标
		$("#headsearch .search-btn").click(function(){
			JKXY.CJT.webSearchMain( "headsearch" );
		});
		$(document).bind("keydown",function(event){
			if( event.keyCode ==13 )
			{
				JKXY.CJT.webSearchMain( "headsearch" );
			}
		});
	},
	webFootSearch: function() {
		$(document).unbind("keydown");
		// 点击“搜索”按钮
		$(".subscibe_submit").click(function(){
			JKXY.CJT.webSearchMain( "footsearch" );
		});
		$(document).bind("keydown",function(event){
			var id	= $(this).attr('id');
				id	= id ? id : "headsearch";
			if( event.keyCode ==13 )
			{
				JKXY.CJT.webSearchMain( "footsearch" );
			}
		});
	},
	webSearchMain: function(id){
		var _t = $("div#"+id+" input")[0].value;
		var _q = $("div#"+id+" input")[1].value;
		if( !_q )
		{
			JKXY.msgBox( 0, '搜索关键词不能为空' );
			return false;
		}
		var _host = location.host;
		var _search_host = _host.replace(/\w+/,"search");
		var _url = 'http://'+_search_host+'/s/' + 't_' + _t + '|q_' + encodeURIComponent(_q) + '|sfilter_1';
		location.href = _url;
	},
	GoTop:function(){//返回头部
		if( typeof(event_stop)=='object' )
		{
			if( event_stop.rightdia === false )
			{
				return '';
			}
		}
		var lock =JKXY.Cookie.get("pewm");
		var erwma_none	= lock=="none" ? '' : "style='display:none'";
		var html="<div class='gotop' id='gototop'>";
		html+="<span class='top'></span>";
		html+="<span class='erwma' "+erwma_none+" ><img src='"+cdn_url+"images/erwma.png'/> </span>";
		html+="<a href='" + www_url + "app/' alt='极客学院应用' target='_blank'><span class='jk-app'><img src='"+cdn_url+"images/appewm.png'/></span></a>"
		html+="<a href='http://wpa.qq.com/msgrd?v=3&uin=2905494756&site=qq&menu=yes' target='_blank' class='qq-online'>";
		html+="<span class='kefu'>官方客服QQ:2905494756<br/>  工作日9:00-21:00在线<i></i></span></a>";
		html+="<a href='http://www.wenjuan.com/s/RR7bym/' class='diaocha' target='_blank'></a>";
		html+="<div class='pewm2' id='pewm2'><span class='lottery-close'></span><a target='_blank' href='http://325.jikexueyuan.com?hmsr=float_img'> <img src='"+cdn_url+"activity/jikejie/img/f_jkj.png' /></a></div>";//大转盘入口图片
		//html+="<span class='news'>!</span>";
		if(lock!="none")
		{
			var pewm_display	= $('#bannerbox').length <= 0 ? '' : 'style="display:none;"';
			html+="<img src='"+cdn_url+"images/ewap.jpg' class='pewm' id='pewm' "+pewm_display+" />";
		}
		html+="</div>";
		//获取返回顶部元素对象
		var version=" <div class='text' id='ie-test'>您的浏览器版本太低,为了获得更好的浏览体验!<br/>我们建议您升级浏览器或者使用Chrome、Firefox、Safari浏览器</div>";


		function showPop(id){
			if( $(window).height() < 490+340 && $(window).scrollTop() <= 490 )
			{
				$(id).fadeOut();
			}
			else
			{
				$(id).fadeIn();
			}
		}
		var pewmDisplay = function() {
			var lock =JKXY.Cookie.get("pewm");
			if( lock!="none" && $('#bannerbox').length > 0 )
			{
				showPop('#pewm');
			}
		}


		if($j('#gototop').length == 0){
			$j('body').append(html);
			var html = $j('#gototop');
			pewmDisplay();
		}else{
			var html = $j('#gototop');
		}
		//绑定返回顶部事件
		$('#pewm').on("click",function(){
			$(this).fadeOut();
			JKXY.Cookie.set("pewm","none",1, '/', '.'+ domain(window.location.href) , '');
			$('.erwma').fadeIn();
		});
		if($j(window).scrollTop() <= 0){
			$j('#gototop>.top').hide();
		}
		html.find('.top').bind('click',function(){
			if($j(window).scrollTop() <= 0) return false;
			$j('body,html').animate({scrollTop:0},200);
			return false;
		});
		html.find('.erwma').bind("mouseover",function(){
			$j('.erwma>img').fadeIn();
			$j('.jk-app img').hide();
			JKXY.CJT.stopEventBubble();
		})
		html.find('.jk-app').bind("mouseover",function(){
			$j('.jk-app img').fadeIn();
			$j('.erwma>img').hide();
			JKXY.CJT.stopEventBubble();
		})
		$j(document).bind("mouseover",function(){
			$j('.erwma>img').stop(true,true)
			$j('.jk-app img').stop(true,true)
			$j('.jk-app img').fadeOut();
			$j('.erwma>img').fadeOut();
		})
		$j(window).scroll(function(){
			if($j(window).scrollTop()>0){
				$j('#gototop>.top').fadeIn();
			}else{
				$j('#gototop>.top').fadeOut();
			}
			pewmDisplay();
		})
		html.find('.news').bind("click",function(){
			if( JKXY.Browser.IE){
				if(JKXY.Browser.IE6 || JKXY.Browser.IE7 || JKXY.Browser.IE8 ){
					if($j('#warningpop').has('#ie-test')){
						return false
					} else{
						$j('#warningpop').append(version);
					}

				}
			}
			$('#warningpop').tooltip("pop", {
				width: 540,
				height:'auto',
				popId: '#warningpop',
				opacity:0.3
			})
		});
		$j('.close-img').bind("click",function(){
			$(this).parent().remove();
		})
	},
	lessonHover:function(){
		$j(this).find('.jd-line').hide();
		var cricle = $j(this).find('.cricle');
		var deg = $j(this).attr("deg");
		if( $j(this).attr("stop") != 1 )
		{
			var cricle = $j(this).find('.cricle');
			var deg = $j(this).attr("deg");
			new C(cricle, deg);
			$j(this).attr('stop',1);
		}
		var _play = $j(this).find('.lessonplay');
		TweenMax.to(_play, 0.6, {opacity:1,ease:Quart.easeOut});
		var cancel_fav	= $j(this).find('.cancel-favorites');
		if( cancel_fav.length > 0 && cancel_fav.attr('class').indexOf('cancel-stop') < 0 )
		{
			cancel_fav.show();
		}
		var lesson_shoucang	= $j(this).find('.lesson-shoucang');
		if( lesson_shoucang.length > 0 )
		{
			lesson_shoucang.show();
		}

		if(JK_lock==="close"){return false}
		var less = $j(this).children('.lesson-infor');
		var learn1= $j(this).find('.learn-number');
		var learn2 =$j(this).find('.zhongji');
		learn1.show();
		learn2.show();
		less.addClass("lesson-hover");
		$j(this).find('.lessonicon-box').css("bottom","-2px");
		TweenMax.to(less, 0.6, {height:175,ease:Quart.easeOut});
		var _p = less.find("p");
		TweenMax.to(_p, 0.15, { display:"block",height:52, opacity:1,ease:Linear.easeOut});
	},
	lessonOut:function(p, obj){
		var obj	= typeof(obj) == 'object' ? obj : $j(this);
		obj.find('.jd-line').show();
		var _play = obj.find('.lessonplay');
		TweenMax.to(_play, 0.6, {opacity:0,ease:Quart.easeNone});
        var cancel_favorites_obj    = obj.find('.cancel-favorites');
		if( cancel_favorites_obj.length > 0 && cancel_favorites_obj.attr('class').indexOf('cancel-stop') < 0 )
		{
            cancel_favorites_obj.hide();
		}
		var lesson_shoucang	= obj.find('.lesson-shoucang');
		if( lesson_shoucang.length > 0 && lesson_shoucang.attr('class').indexOf('ysc') < 0 )
		{
			lesson_shoucang.hide();
		}

		if(JK_lock==="close"){return false}
		var less = obj.children('.lesson-infor');
		var learn1= obj.find('.learn-number');
		var learn2 =obj.find('.zhongji');
		learn1.hide();
		learn2.hide();
		less.removeClass("lesson-hover");
		obj.find('.lessonicon-box').css("bottom","4px");
		TweenMax.to(less, 0.6, {height:88,ease:Quart.easeNone});
		var _p = less.find("p");
		TweenMax.to(_p,0.3 , { height:0,opacity:0,display:'none',ease:Linear.easeNone});
	},
	lessonNavHover:function(){
		$j('.lesson-nav dd').mousemove (function(){
			var $this =	$j(this).find('.cateLists-li a');
			TweenMax.to($this,0.4, { marginLeft:"10px",ease:Quart.easeOut});
		})
		$j('.lesson-nav dd').mouseout (function(){
			var $this =	$j(this).find('.cateLists-li a');
			TweenMax.to($this,0.4, { marginLeft:"0px",ease:Quart.easeOut});
		})
	},
	// 填0操作
	fillZero:function( string, repeat, repeat_stuff ) {
		var string	= string.toString();
		var repeat	= repeat ? parseInt(repeat) : 2;
		var repeat_stuff	= repeat_stuff ? repeat_stuff : 0;
		if( string )
		{
			var len		= string.length;
				repeat	= repeat-len ? repeat-len : 0;
				string	= new Array( repeat+1 ).join(repeat_stuff)+string;
		}
		return string;
	},
	getJsDate: function( format ) {
		var format	= format ? format : '%Y年%m月%d日 %H:%i:%s';
		var now		= new Date();
		var year	= now.getFullYear();
		var month	= JKXY.CJT.fillZero( now.getMonth()+1 );
		var days	= JKXY.CJT.fillZero( now.getDate() );
		var hour	= JKXY.CJT.fillZero( now.getHours() );
		var minutes	= JKXY.CJT.fillZero( now.getMinutes() );
		var seconds	= JKXY.CJT.fillZero( now.getSeconds() );

		var time_str	= format.replace( "%Y", year );
			time_str	= time_str.replace( "%m", month );
			time_str	= time_str.replace( "%d", days );
			time_str	= time_str.replace( "%H", hour );
			time_str	= time_str.replace( "%i", minutes );
			time_str	= time_str.replace( "%s", seconds );
		return time_str;
	},
	/*
	 *	@desc 实时动态时间,最后将时间写入到class中,
	 *		format:自定义显示方式。
	 *	%Y=年, %m=月, %d=日, %H=小时%i=分钟%s=秒
	*/
	nowTime:function(cls, format) {
		if( $('.'+cls).length <= 0 )
		{
			clearInterval(tick);
			return false;
		}

		var tick	= setInterval( e_clock, 1000 );
		function e_clock( )
		{
			$('.'+cls).html( JKXY.CJT.getJsDate( format ) );
		}
		e_clock();
	},
	timeCare: function(){
		var ck_key	= "care_tip";
			is_show	= JKXY.Cookie.get(ck_key);
		var care_where_1	= !is_show && typeof( event_stop ) == 'undefined';
		var care_where_2	= (typeof(event_stop) == 'object' && event_stop.usercare === true);
		if( care_where_1 || care_where_2 )
		{
			var date	= new Date();
			var data	= {'time': parseInt(date.getTime()/1000), 'date':JKXY.CJT.getJsDate( '' ) };
			$.getJSON("/Ajax/getTakeCareUser?jsoncallback=",data, function(result){
				if( result.status && result.info.msg )
				{
					showCare( result.info.msg );
				}
			});
		}

		// 显示提示
		function showCare( msg )
		{
			var msg		= msg ? msg : '亲爱的VIP,这是来自极客学院小雪的问候~';
			var id		= "timeCare";
			var html;
				html	= '<div class="web-dia-tip" id="'+id+'" >';
					html	+= '<p class="jkxy_hello">'+msg+'</p>';
					html	+= '<p class="jkxy_time">当前时间:</p>';
				html	+= '</div>';
			$('body').append( html );

			JKXY.CJT.nowTime( 'jkxy_time', '当前时间:%Y年%m月%d日 %H:%i:%s' );
			var _W	= $(window).width()/2 - $('#'+id).width()/2 - 20;
			$('#'+id).css("marginLeft", _W);
			$('#'+id).animate({top:"0px",opacity:1},300,function(){
				$('#'+id).delay(5000).animate({top:"-50px",opacity:0},500,function(){
					$('#'+id).remove();
				});
			});
		}
		// 加入钟表
	}
}
//播放进度
var C = function(id,deg){
	this.box = id;
	this.left = this.box.find(".left");
	this.right = this.box.find(".cright");
	this.mask = this.box.find(".mask");
	this.text = this.box.find(".text");
	this.d = 0;
	this.A = null;
	this.deg = deg;
	this.init();
}
C.prototype = {
	init : function(){
		var T = this;
		this.A = window.setInterval(function(){T.change()},10);
	},
	change : function(){
		var T = this;
		if(this.d>180){
			if(this.d>360){
				window.clearInterval(this.A);
				this.A = null;
				return;
			}
			this.right.show();
			this.mask.hide();
		}
		this.text.text(parseInt(this.d/3.6)+"%");
		this.left.css({
			"-webkit-transform":"rotate("+this.d+"deg)",
			"-moz-transform":"rotate("+this.d+"deg)"
		});
		if(this.d<this.deg){
			this.d+=6;
		}
	}
}
JKXY.msgBox	= function(status, msg, show_time, callBack)
{
	var msg		= msg ? msg : '亲爱的VIP,这是来自极客学院小雪的 Hello~';
	var id		= "warning";
	var show_time	= parseInt(show_time) ? parseInt(show_time) : 1500;
	switch (status)
	{
		case 1:
			var color_class	= "waring-success";
			break;
		case 0:
			var color_class	= "waring-failure";
			break;
		case 2:
		default:
			var color_class	= "waring-sub";
			break;
	}
	var html;
		html	= '<div class="web-dia-tip '+color_class+'" id="'+id+'" >';
			html	+= msg;
		html	+= '</div>';
	$('body').append( html );

	var _W	= $('#'+id).width()/2;
	$('#'+id).css("marginLeft", -_W);
	$('#'+id).animate({top:"0px",opacity:1},300,function(){
		$('#'+id).delay(show_time).animate({top:"-50px",opacity:0},500,function(){
			$('#'+id).remove();
			if( typeof(callBack) == 'function' )
			{
				callBack();
			}
		});
	});
	
};

/**
 * Cookie相关操作
 * @namespace Cookie
 * @name JK.Cookie
 * @static
 */
JKXY.Cookie = {
	/**
	 * 获取Cookie内容
	 * @name JK.Cookie.get
	 * @function
	 * @grammar JK.Cookie.get(name)
	 * @param {String} name Cookie键名
	 *
	 * @return {String} Cookie值
	 */
    cokpre:'sso_',
	get: function( name ) {
	var nameEQ = this.cokpre+name + '=';
	var ca = document.cookie.split(';');
	for ( var i=0;i < ca.length; i++ ) {
		var c = ca[ i ];
		while ( c.charAt(0) == ' ' ) c = c.substring( 1 , c.length );
		if ( c.indexOf( nameEQ ) == 0 ) {
		var ret;
		try{
			ret = unescape( c.substring( nameEQ.length , c.length ) );
		} catch(e) {
			ret = unescape( c.substring( nameEQ.length , c.length ) );
		}
		return ret;
		}
	}
	return null;
	},
	/**
	 * 设置Cookie内容
	 * @name JK.Cookie.set
	 * @function
	 * @grammar JK.Cookie.set(name , value[ , days , path , domain , secure])
	 * @param {String} name Cookie键名
	 * @param {String} value Cookie键值
	 * @param {Int} days Cookie有效期天数
	 * @param {String} path Cookie有效路径
	 * @param {String} domain Cookie有效域
	 * @param {Boolean} secure 是否安全Cookie
	 * @remark 兼容了编码为GBK时的Cookie读取失败的问题 2014-10-11 caojiangtao
	 */
	set : function( name , value , days , path , domain , secure ) {
	var expires;
	if ( typeof days =="number" ) {
		if(days>0){
			var date = new Date();
			date.setTime( date.getTime() + ( days * 24 * 60 * 60 * 1000 ) );
			expires = date.toGMTString();
		}
	} else if ( typeof days =="String" ) {
		expires = days;
	} else {
		expires = false;
	}
	document.cookie = this.cokpre+name + '=' + escape( value ) +
		(expires ? (';expires=' + expires)	: '') +
		(path ? (';path=' + path) : '') +
		(domain ? (';domain=' + domain) : '') +
		(secure ? ';secure' : '');
	},
	/**
	 * 删除Cookie内容
	 * @name JK.Cookie.del
	 * @function
	 * @grammar JK.Cookie.del(name[ , path , domain , secure])
	 * @param {String} name 要删除的Cookie键名
	 * @param {String} path Cookie有效路径
	 * @param {String} domain Cookie有效域
	 * @param {Boolean} secure 是否安全Cookie
	 */
	del : function( name , path , domain , secure ) {
		JKXY.Cookie.set( name , '' , -1 , path , domain , secure );
	}
};
JKXY.host = {
	domain : function(url){	
		var durl=/http:\/\/([^\/]+)\//i;  
		var hosts = url.match(durl);
		hosts = hosts[1];
		d_arr = hosts.split('.');
		hosts = d_arr[d_arr.length - 2] + '.' + d_arr[d_arr.length - 1];   
		return hosts;
	},
	domain_pre : function(url){	
		var durl=/http:\/\/([^\/]+)\//i;  
		var hosts = url.match(durl);
		hosts = hosts[1];
		d_arr = hosts.split('.');
		return d_arr[0];
	},
	domain_arr :function(url){
		var durl=/http:\/\/([^\/]+)\//i;  
		var hosts = url.match(durl);
		hosts = hosts[1];
		d_arr = hosts.split('.');
		return d_arr;
	}
};
JKXY.statis = {
		//输入点位置 初始化
		init:function(){
			$('a').on('click',function(){
				if(typeof($(this).attr('postion')) != 'undefined'){
					try{
					var host_arr = JKXY.host.domain_arr(window.location.href);
					var host = '.'+host_arr[1]+ '.' + host_arr[2];
					
					JKXY.Cookie.set('sso_postion',$(this).attr('postion'),0,'/',host);
					}catch(e){
						return false;
					}
				}
			})
		}
};
/* 密码强度检测 */
var pwdStrong	= {
	level:['', '太简单了', '一般般', '很安全'],
	main: function( jq_obj, val ) {
		if( val == '' )
		{
			return 0;
		}
		var jq_obj	= jq_obj;
		var strongRegex	= new RegExp("^(?=.{8,})(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*\\W).*$", "g");
		var mediumRegex	= new RegExp("^(?=.{7,})(((?=.*[A-Z])(?=.*[a-z]))|((?=.*[A-Z])(?=.*[0-9]))|((?=.*[a-z])(?=.*[0-9]))).*$", "g");
		var enoughRegex	= new RegExp("(?=.{6,}).*", "g");
		if ( false == enoughRegex.test(val) )
		{
			return 1;
		}
		else if (strongRegex.test(val))
		{
			return 3;
		}
		else if (mediumRegex.test(val))
		{
			return 2;
		}
		else
		{
			return 1;
		}
		return false;
	},
	genReport:function( jq_obj, val ) {
		if( typeof(jq_obj) && jq_obj )
		{
			var level_id	= pwdStrong.main( jq_obj, val );
			pwdStrong.handleReport( jq_obj, level_id );
			if( typeof( callBack ) == 'function' )
			{
				callBack( jq_obj, level_id );
			}
		}
	},
	callBack: '',
	handleReport: function( jq_obj, level_id ) {

		jq_obj.next('.pwd-strong').find('span').each(function(){
			if( $(this).attr('level') <= level_id )
			{
				$(this).removeClass('active').addClass('active');
			}
			else
			{
				$(this).removeClass('active');
			}
		});

	}
};
$j(function(){
	JKXY.CJT.init();
	// obj -> 点击对象
	// res -> 用户点击之后的返回结果值
	JKXY.userdoCBFuncFavoritesCourse	= function( obj, res ) {
		var lesson_shoucang	= ( obj.attr('class').indexOf('lesson-shoucang') >= 0 ? true : false );
		var cancel_fav		= ( obj.attr('class').indexOf('cancel-favorites') >= 0 ? true : false );
		var user_home		= typeof(JKXY.user_home)!='undefined' ? JKXY.user_home : false;
		var no_content_fav	= typeof(JKXY.no_content_fav)!='undefined' ? JKXY.no_content_fav : '';
		if( res.info.status >= 1 )
		{
			// 课程卡左上角图标
			if( lesson_shoucang === true )
			{
				obj.addClass('ysc');
			}
			// 课时播放器的收藏动作
			if( obj.hasClass('shouchang') || obj.hasClass('sc_btn') )
			{
				$('.shouchang').attr('s', 1).find('i').addClass("ysc");
				$('.sc_btn').html('已收藏').addClass('sc_btn_favor');
			}
			// 学习中心收藏课程
			if( user_home === true )
			{
				var home_course_obj	= $('#home_course');
				home_course_obj.find('li').each(function(){
					if( res.info.other.oid == $(this).attr('courseid') )
					{
						$(this).find('.lesson-shoucang').addClass('ysc');
						var home_my_fav_obj	= $('#home_my_fav');
						var goon 			= true;
						home_my_fav_obj.find('li').each(function(){
							if( $(this).attr('courseid') == res.info.other.oid )
							{
								goon	= false;
							}
						});
						if( goon === true )
						{
							var course_copy		= $(this).clone();
							home_my_fav_obj.find('.no-contnet-block').remove();
							course_copy.find('.lesson-shoucang').remove();
							course_copy.find('.cancel-favorites').removeClass('cancel-stop').attr({oid:res.info.other.oid,s:1}).on("click", function(){
								userDoItFunc($(this));
							});
							JKXY.CJT.lessonOut( {}, course_copy );
							home_my_fav_obj.append( course_copy );
							course_copy.hover(
								JKXY.CJT.lessonHover,
								JKXY.CJT.lessonOut
							);
						}
					}
				});
			}
		}
		else
		{
			if( obj.hasClass('shouchang') || obj.hasClass('sc_btn')  )
			{
				$('.shouchang').attr('s', 0).find('i').removeClass("ysc");
				$('.sc_btn').removeClass('sc_btn_favor').html('收藏');
			}
			if( lesson_shoucang === true )
			{
				obj.removeClass('ysc');
			}
			// 学习中心【我收藏的课程】取消收藏
			if( cancel_fav === true || user_home === true )
			{
				var home_my_fav_obj	= $('#home_my_fav');
				if( home_my_fav_obj.find('li').length > 1 )
				{
					home_my_fav_obj.find('li').each(function(){
						if( res.info.other.oid == $(this).attr('courseid') )
						{
							$(this).remove();
						}
					});
				}
				else
				{
					home_my_fav_obj.html( no_content_fav );
				}
				var home_course_obj	= $('#home_course');
					home_course_obj.find('li').each(function(){
						if( res.info.other.oid == $(this).attr('courseid') )
						{
							$(this).find('.lesson-shoucang').removeClass('ysc');
						}
					});
			}
		}
	};
	$('.user-action').on("click", function(){
	//$('#wiki_lists').delegate('.user-action' , "click", function(){
		userDoItFunc( $(this) );
	});
	//$('.user-action').on("click", function(){
	$('#wiki_lists').delegate('.user-action' , "click", function(){
		userDoItFunc( $(this) );
	});
	function userDoItFunc(obj)
	{
		if( typeof(obj) == 'undefined' )
		{
			return false;
		}
		var obj		= obj;
		var mid		= obj.attr('mid');
		var oid		= obj.attr('oid');
		var s_now	= obj.attr('s');
		var cls_y	= obj.attr('clsy');
		var cls_n	= obj.attr('clsn');
		var oper	= obj.attr('oper');
		function btnDefault()
		{
			obj.attr('stop', 0);
		}
		function btnStop()
		{
			obj.attr('stop', 1);
		}

		if( mid && oid )
		{
			if( obj.attr('stop') == 1 )
			{
				return false;
			}

			btnStop();
			var data	= '&mid='+mid+'&oid='+oid+'&s_now='+s_now+'&cls_y='+cls_y+'&cls_n='+cls_n+'&oper='+oper;
			var sub_url	= '/ajax/userDoIt?'+Math.random();
			$.ajax({url: sub_url+Math.random(), data: data, dataType: 'json', type: 'POST',
				success: function(res){
					if( res.status )
					{
						btnDefault();
						var func_string	= res.info.callBackFunc;
						var callBackFunc= new Function( 'return JKXY.'+func_string+';')();
						if( typeof( callBackFunc ) == 'function' )
						{
							if( res.info.status )
							{
								obj.attr('s', 1);
							}
							else
							{
								obj.attr('s', 0);
							}
							callBackFunc(obj, res);
						}
						else
						{
							if( res.info.status )
							{
								obj.attr('s', 1).removeClass(cls_n).addClass(cls_y);
							}
							else
							{
								obj.attr('s', 0).removeClass(cls_y).addClass(cls_n);
							}
						}
					}
					else
					{
						btnDefault();
						if( res.info.msg.indexOf('登录') >= 0 )
						{
							loginpop.pop();
						}
						JKXY.CJT.login(1, res.info.msg);
					}
				}
			});
		}
		else
		{
			btnDefault();
		}
	}
	JKXY.statis.init();
});


/ 邮箱,密码,密码强度,验证码

(function($) {
//检测邮箱是否为空
	$.fn.ckEmailEmpty =function(txt){
		var $this = $(this);
		var val = $(this).val().trim();
		if(val == ''){
			$this.next('.warning').remove();

            if(arguments.length == 0){
                $this.after("<span  class='warning empty' cktype='false'>请输入邮箱</span>");
            } else{
                $this.after("<span  class='warning empty'  cktype='false'>"+txt+"</span>");
            }

			$this.bind("focus",function(){
				$this.next('.warning').remove();
			})
			return false;
		} else{
			return true;
		}
	},
// 邮箱检测

	$.fn.ckEmail = function(url,type) {  //邮箱检测
		if(type!= null){
			$(this).bind(type,checkEmail);
		} else{
			(this).bind("focusout",checkEmail);
		}
		function checkEmail(){
			$(this).next('.warning').remove();
			$(this).after("<span  class='warning'></span>")
			var val = $(this).val().trim();
			var check =  /^[A-Z_a-z0-9-\.]+@([A-Z_a-z0-9-]+\.)+[a-z0-9A-Z]{2,4}$/.test( val );
			if(check){
				if(url != null){
					var $this = $(this);
					$.post(url,{ 'email':val, 'isajax':1},function(data){
						if(data.status == '1'){
							console.log($(this))
							$this.next(".warning").removeClass('wrong').addClass("right").html("");
							$this.next(".warning").attr("cktype","true");
							return true
						}else{
							$this.next(".warning").removeClass('right').addClass("wrong").html("邮箱已存在");
							$this.next(".warning").attr("cktype","false");
							return false;
						}
					},'json');
				} else{
					$(this).next(".warning").addClass("right").html("");
					$(this).next(".warning").attr("cktype","true");
				}

			}else{
				$(this).next(".warning").addClass("wrong").html("邮箱输入有误");
				$(this).next(".warning").attr("cktype","false");
			}
		}
	};
// 检测密码是否为空
	$.fn.ckPassWordEmpty=function(){
		var $this = $(this);
		var val = $(this).val().trim();
		if(val == ''){
			$this.next('.warning').next('.warning').remove();
			$this.next('.warning').after("<span  class='warning empty' cktype='false'>请输入密码</span>");
			$this.bind('focus',function(){
				$this.next('.warning').next('.warning').remove();
			});
			return false;
		} else{
			$this.next().next('.warning').remove();
			$this.next().after("<span class='warning right' cktype='true'></span>");
			return true;
		}
	}
// 检测 用户中心的密码是否为空
	$.fn.ckPassWordEmptyByUcenter = function(){
		var $this = $(this);
		var val	= $(this).val().trim();
		if(val == '')
		{
			$this.next().next('.warning').remove();
			$this.next().after("<span class='warning wrong mar-l90' cktype='false'>密码不能为空</span>");
			$this.bind('focus',function(){
				$this.next().next('.warning').remove();
			});
			return false;
		} else{
			$this.next().next('.warning').remove();
			$this.next().after("<span class='warning right mar-l90' cktype='true'></span>");
			return true;
		}
	};

 // 密码重复对比校验
    $.fn.ckrpeatPassWrod = function(a,b,type){
        if(type != null) {
            $(this).bind(type, test)
        }else{
            $(this).bind('focusout', test)
        }
        function test(){

            var pw1 = $.trim($(a).val());
            var pw2 = $.trim($(b).val());
            console.log(pw1+"="+pw2)
            if(pw1!= ''&& pw2 != '' ){
                if( pw1 === pw2){
                    $(this).next().next('.warning').remove();
                    $(this).next().after("<span class='warning right' cktype='true'></span>");
                    return true;
                } else{
                    $(this).next().next('.warning').remove();
                    $(this).next().after("<span class='warning wrong' cktype='false'>密码不一致</span>");
                    return false;
                }
            }

        }

    }
//	密码检测
	$.fn.ckPassWord = function(s){   //密码强度检测 "stong"为检查强弱度

		var STRONG = '<div class="safety pwd-strong">'
		STRONG+='<span class="level-1" level="1">弱</span>'
		STRONG+='<span class="level-2" level="2">中</span>'
		STRONG+='<span class="level-3" level="3">强</span> </div>';
        $this = $(this);

        if(s == "strong"){
            $('.pwd-strong').remove();
            $this.after(STRONG);
            $this.bind("keyup",function(){
                var val	= $this.val().trim();
                pwdStrong.passwordLen(val);
                pwdStrong.genReport( $this, val );
            })
            $(this).bind('focusout',function(){
                var val	= $this.val().trim();
                pwdStrong. passwordSix(val)
            })
        } else if(arguments.length == 0) {
            $this.bind("keyup",function(){
                var val	= $this.val().trim();
                pwdStrong.passwordLen(val);

            })
            $(this).bind('focusout',function(){
                var val	= $this.val().trim();
                if(val != ''){
                    pwdStrong. passwordSix(val)
                }

            })
        }

	};

// 检测确认密码是否为空
	$.fn.ckRepasswordEmpty	= function(){
		var $this	= $(this);
		var val		= $(this).val().trim();
		if(val == '')
		{
			$this.next('.warning').remove();
			$this.after("<span  class='warning wrong mar-l90' cktype='false'>请再次输入一遍确认密码</span>");
			$this.bind("focus",function(){
				$this.next('.warning').remove();
			})
			return false;
		}
		else
		{
			return true;
		}
	}
// 检测确认密码格式是否哦正确
	$.fn.ckRepassword	= function(source_pwd_obj){
		$(this).bind("focusout", checkRePassword);

		function checkRePassword()
		{
			$(this).next('.warning').remove();
			$(this).after("<span  class='warning'></span>");

			var val		= $(this).val().trim();
			if( val && source_pwd_obj.val() == val )
			{
				$(this).next(".warning").addClass("right").html("");
				$(this).next(".warning").attr("cktype","true");
			}
			else
			{
				$(this).next(".warning").addClass("wrong mar-l90").html("保证两次密码输入一致");
				$(this).next(".warning").attr("cktype","false");
			}
		}
	}

//检测验证码是否为空
	$.fn.checkSafeEmpty = function(){
		var $this = $(this);
		var val = $(this).val().trim();
		if(val == ''){
			$this.parent().find('.warning').remove()
			$this.parent().append("<span  class='warning empty' cktype='false'>请输入验证码</span>");
			$this.bind("focus",function(){
				$this.parent().find('.warning').remove()
			})
			return false;
		} else{
			return true;
		}

	};
//验证码检测
	$.fn.checkSafe = function( url,type){  //检测验证码  验证码图片和 换一张的class要求一致
		$('body').delegate('.security-code,.warning-word','click',function(){
			var timenow = new Date().getTime();
			$('.security-code>img').attr("src", '/verify/show.html?'+timenow);
		})
		var $this = $(this);
		if(type != null){
			$(this).bind(type, safe)
		} else{
			var _class = $(this).selector;
			$('body').delegate(_class,"focusout",safe);
			//$(this).bind("keyup", safe)

		}

		function safe(){
			var obj = $(this);
			var val = obj.val().trim();

			if(val == ''){
				obj.parent().find('.warning').remove()
				obj.parent().append("<span  class='warning empty' cktype='false'>请输入验证码</span>");
				return false
			} else{
				$.post(url,{safecode:val},function(data){
					if(data == true){
						obj.parent().find('.warning').remove();
					} else{
						obj.parent().find('.warning').remove()
						obj.parent().append("<span  class='warning wrong' cktype='false'>验证码错误</span>");
						$('.security-code').click();
					}
				},'json');

			}
		}


	}

// 手机号检测
	$.fn.ckPhone	= function(type) {
		if(type!= null)
		{
			$(this).bind(type, isPhone);
		}
		else
		{
			$(this).bind("focusout", isPhone);
		}

		function isPhone()
		{
			$(this).next('.warning').remove();
			$(this).after("<span  class='warning'></span>");

			var val		= $(this).val().trim();
			var preg	= /^(1[0-9])\d{9}$/;
			var check	= preg.test( val );
			if( check )
			{
				$(this).next(".warning").addClass("right").html("");
				$(this).next(".warning").attr("cktype","true");
			}
			else
			{
				$(this).next(".warning").addClass("wrong").html("手机号码输入错误");
				$(this).next(".warning").attr("cktype","false");
			}
			if( val == '' )
			{
				$(this).next(".warning").addClass("right").html("");
				$(this).next(".warning").attr("cktype","false");
			}
		}
	};

	String.prototype.rTrim=function(){	//去右空格
		var re_r=/([.\w]+)[ ]*$/;
		return this.replace(re_r,"$1");
	}
	String.prototype.lTrim=function(){	//去左空格
		var re_l=/^[ ]+(.+)/;
		return this.replace(re_l,"$1")
	}
	String.prototype.trim=function(){	 //去左右空格
		return this.lTrim().rTrim()
	}
})(jQuery);




//登录弹出框

//(function($){
	var loginpop = {
		init: function () {
			this.bindEle();
		},
		popHtml: function () {
			var html = '<div id="login-pop" class="dialog">';
			html += '<div class="dialog-box">';
			html += ' <h3><i class="popclose"></i>登录</h3>';
			html += '<div class="pop-input-list">';
			html += ' <ul style="height:170px;">';
			html += ' <li> <img src="'+ cdn_url +'images/right.png" class="right" style="display: none">';
			html += ' <li>';
			html += ' <input type="text" placeholder="邮箱/用户名" class="user-name" id="user-name"/>';
			html += '<p class="color-red pop-warning"></p>';
			html += ' </li>';
			html += ' <li  class="mar-b20">';
			// html+=' <img src="'+ cdn_url +'images/right.png" class="right">';
			html += ' <input type="password" placeholder="密码" class="user-password" id="user-password" size="32"/>';
			html += ' <input type="hidden"  id="verifypwd" name="verifypwd" />';
			html += '<p class="color-red pop-warning2"></p>';
			html += ' </li>';
			html += ' <li class="cf">';
			html += '<input type="text" class="input-tow uer-safe" placeholder="验证码" />';
			html += ' <div class="security-code"> <img src="/verify/show.html"></div>';
			html += '<span class="warning-word"> 看不清楚?换一张</span>';
			html += '<span class="color-red pop-warning4" cktype="false" style="display: none"></span>'
			html += ' </li></ul>';
			html += ' <div class="inputbox cf">';
			html += '<div class="sevenday"><i class="choose-this checkbox"></i>7天内免登录 <a href="/sso/forget.html" >忘记密码?</a></div>';
			html += ' </div> <button class="greenbtn mar-b20" id="loginbtn">登录</button>';
			html += '  <div class="no-zhanghao">还没有账号?<a href="javascript:void(0)" class="regnow">立即注册</a></div>';
			html += '<h4 class="mar-b20 mar-t40">用第三方账号登录</h4>';
			html += ' <ul class="login-three cf">';
			html += ' <li><a href="'+ qq_login_url +'"><img src="'+ cdn_url +'images/qq-s.png"><span>QQ账号登录</span></li>';
			html += '<li><a href="'+ weibo_login_url +'"><img src="'+ cdn_url +'images/sina-s.png"><span>新浪账号登录</span></li>';
			html += ' <li><a href="'+ eoe_login_url +'"><img src="'+ cdn_url +'images/eoe-s.png"><span>eoe账号登录</span></li>';
			html += ' <li><a href="'+ wx_login_url +'"><img src="'+ cdn_url +'images/wx-s.png"><span>微信账号登录</span></li>';
			html += '</ul>'
			html += ' </div>';
			html += '</div>';
			html += '</div>';
			return html;
		},
		bindEle: function () {
			$('.diaLoginBtn').bind("click", this.pop)
		},
		pop: function () {
			$().tooltip("pop", {
				width: 420,
				height: 548,
				popId: '#login-pop',
				opacity: 0.4,
				popHtml: loginpop.popHtml(),
				popFunc: loginpop.tijiao()
			})
			JKXY.safeCode.init($('#login-pop').find('input[name=verifypwd]'));
		},
		tijiao: function () {
			
			//$('.uer-safe').checkSafe('/sso/checkSafeCode');//验证码检测
            $('body').delegate('.security-code,.warning-word','click',function(){
                var timenow = new Date().getTime();
                $('.security-code>img').attr("src", '/verify/show.html?'+timenow);
            })
			var _day = 7;
			$('body').delegate('.checkbox', 'click', function () {
				if ($('.checkbox').hasClass("choose-this")) {
					$('.checkbox').removeClass("choose-this");
					_day = 0;
				} else {
					$('.checkbox').addClass("choose-this");

					_day = 7;
				}
			})


			var lock = 0;



			$('body').delegate('#loginbtn', "click", loginFun);


            function loginFun(){
                if (lock == 1) return false;
                var username = $.trim($('#user-name').val());
                var userpassWord = $.trim($('#user-password').val());
                var uersafe = $.trim($('.uer-safe').val());
                $('#user-name').bind("focus", function () {
                    $('.pop-warning').empty();
                });
                $('#user-password').bind('focus', function () {
                    $('.pop-warning2').empty();
                });
                $('.uer-safe').bind('focus', function () {
                    $('.pop-warning4').empty();
                })
                if (username == "") {
                    $('.pop-warning').html("邮箱/用户名不能为空!");
                } else if (userpassWord == "") {
                    $('.pop-warning2').html("密码不能为空!");
                } else if (uersafe == "") {
                    $('.pop-warning4').html("请输入验证码!").show();
                } else {
                    $.post('/sso/checkSafeCode',{safecode: $.trim($('.uer-safe').val())},function(data){
                        if(data == true) {
                            lock = 1;
                            var url = "/sso/chklogin";
                            var username = $.trim($('#user-name').val());
                            var userpassWord = $.trim($('#user-password').val());
                            var uersafe = $.trim($('.uer-safe').val());
                            var data = {
                                'username': username,
                                'password': JKXY.safeCode.aesCode(userpassWord,$('#login-pop').find('input[name=verifypwd]').val()),
                                'verify': uersafe,
                                'isajax': 1,
                                'authcode': _day
                            }
                            $.post(url, data, function (data) {
                                if (data.status == '1') {
                                    JKXY.msgBox(1, data.info, 2000, function () {
                                       lock = 0;
                                    })
                                    delayJumpUrl(data.jumpUrl, 2000);
                                } else {
                                    JKXY.msgBox(0, data.info, 2000, function () {
                                        lock = 0;
                                    });
                                    $('.security-code').click();
                                    $('.uer-safe').val('');
                                }
                                //lock = 0;

                            }, 'json');
                        }else {
                            $('.pop-warning4').html("验证码错误!").show();
                            $('.security-code').click();
                        }
                    }, 'json');

                };

            }


		}
	}
	$(function(){
		loginpop.init();
		$(".mod-tips .close").on('click',function(){
           $(this).parents('.mod-tips').remove();
        });
		$('#diaLoginBtn,.diaLoginBtn').on('click',function(){loginpop.pop();})

        $('body').delegate('.loginnow','click',function(){
            $('.popclose').click();
            loginpop.pop();
        });
	})

//})(jQuery)

//注册弹出框

//(function($){
var regpop = {
    init: function () {
        this.bindEle();
    },
    popHtml: function () { //注册
        var html = '<div id="reg-pop" class="dialog">';
        html += '<div class="dialog-box">';
        html += ' <h3><i class="popclose"></i>注册</h3>';
        html += '<div class="pop-input-list">';
        html += ' <ul style="height:170px;">';
        html += ' <li> <img src="'+ cdn_url +'images/right.png" class="right" style="display: none">';
        html += ' <li>';
        html += ' <input type="text" placeholder="邮箱" class="user-name" id="user-name"/>';
        html += '<p class="color-red pop-warning"></p>';
        html += ' </li>';
        html += ' <li  class="mar-b20">';
        // html+=' <img src="'+ cdn_url +'images/right.png" class="right">';
        html += ' <input type="password" placeholder="密码" class="user-password" id="user-password" size="32"/>';
        html += '<div class="safety pwd-strong" style="margin-top: 5px;">'
        html +='<span class="level-1" level="1">弱</span>'
        html +='<span class="level-2" level="2">中</span>'
        html +='<span class="level-3" level="3">强</span> </div>';
        html += ' <input type="hidden"  id="verifypwd" name="verifypwd" />';
        html += '<p class="color-red pop-warning2"></p>';
        html += ' </li>';
        html += ' <li class="cf">';
        html += '<input type="text" class="input-tow uer-safe" placeholder="验证码" />';
        html += ' <div class="security-code"> <img src="/verify/show.html"></div>';
        html += '<span class="warning-word"> 看不清楚?换一张</span>';
        html += '<span class="color-red pop-warning4" cktype="false" style="height:20px;"></span>'
        html += ' </li></ul>';
        html += ' <div class="inputbox cf">';
        //  html += '<div class="sevenday"><i class="choose-this checkbox"></i>7天内免登录 <a href="/sso/forget.html" >忘记密码?</a></div>';
        html += ' </div> <button class="greenbtn mar-t20" id="reg-nbtn">同意用户协议,注册</button>';
        html += '<div class="user-xy"><a href="/help/service.html" target="_blank">《极客学院用户协议》</a> </div>'

        html += '  <div class="no-zhanghao">已有账号?<a href="javascript:void(0)" class="loginnow">立即登录</a></div>';
        html += '<h4 class="mar-b20 mar-t40">用第三方账号登录</h4>';
        html += ' <ul class="login-three cf">';
        html += ' <li><a href="'+ qq_login_url +'"><img src="'+ cdn_url +'images/qq-s.png"><span>QQ账号登录</span></li>';
        html += '<li><a href="'+ weibo_login_url +'"><img src="'+ cdn_url +'images/sina-s.png"><span>新浪账号登录</span></li>';
        html += ' <li><a href="'+ eoe_login_url +'"><img src="'+ cdn_url +'images/eoe-s.png"><span>eoe账号登录</span></li>';
        html += ' <li><a href="'+ wx_login_url +'"><img src="'+ cdn_url +'images/wx-s.png"><span>微信账号登录</span></li>';
        html += '</ul>'
        html += ' </div>';
        html += '</div>';
        html += '</div>';
        return html;

    },
    bindEle: function () {
       // $('.diaLoginBtn').bind("click", this.pop)
    },
    pop: function () {
        $().tooltip("pop", {
            width: 420,
            height: 548,
            popId: '#reg-pop',
            opacity: 0.4,
            popHtml: regpop.popHtml(),
            popFunc: regpop.tijiao()
        })
        JKXY.safeCode.init($('#reg-pop').find('input[name=verifypwd]'));
    },
    tijiao: function () {

        var $this = $('#user-password');
        $('body').delegate("#user-password","keyup",function(){
            var val	= $("#user-password").val();
            pwdStrong.passwordLen(val,".pop-warning2","只能包括英文字母、数字和下划线及半角标点符号");
            pwdStrong.genReport(  $('#user-password'), val );
        })
        $('body').delegate("#user-name","focus", function () {
            $('.pop-warning').empty();
        });
        $('body').delegate('#user-password','focus', function () {
            $('.pop-warning2').empty();
        });
        $('body').delegate('.uer-safe','focus', function () {
            $('.pop-warning4').empty();
        })

        $('body').delegate('.security-code,.warning-word','click',function(){
            var timenow = new Date().getTime();
            $('.security-code>img').attr("src", '/verify/show.html?'+timenow);
        })
        var lock = 0;
        $('body').delegate('#reg-nbtn', "click", loginFun);
        function loginFun(){
            if (lock == 1) return false;
            var username = $.trim($('#user-name').val());
            var userpassWord = $.trim($('#user-password').val());
            var uersafe = $.trim($('.uer-safe').val());
            if (username == "") {
                $('.pop-warning').html("邮箱不能为空!");
            } else if (isEmail(username) == false) {
                $('.pop-warning').html("邮箱格式错误!");
            } else {
                var _email = $.trim($('#user-name').val());
                $.post('/sso/checkemail',{ 'email':_email, 'isajax':1},function(data){
                    if(data.status == '1'){
                        if (userpassWord == "") {
                            $('.pop-warning2').html("密码不能为空!");
                        } else if(userpassWord.length<6){
                            $('.pop-warning2').html("密码不能小于6位!");

                        } else if (uersafe == "") {
                            $('.pop-warning4').html("请输入验证码!").show();
                        } else {
                            $.post('/sso/checkSafeCode',{safecode: $.trim($('.uer-safe').val())},function(data){
                                if(data == true) {
                                    lock = 1;
                                    var url = "/sso/chkreg";
                                    var username = $.trim($('#user-name').val());
                                    var userpassWord = $.trim($('#user-password').val());
                                    var uersafe = $.trim($('.uer-safe').val());
                                    var data = { 'email': username, 'password': userpassWord, 'verify': uersafe}
                                    $.post(url, data, function (data) {
                                        if (data.status == '1') {
                                            window.location.href =data.jumpUrl;
                                        } else {
                                            JKXY.msgBox(0, data.info);
                                            if (typeof(data.jumpUrl) != "undefined") {
                                                delayJumpUrl(data.jumpUrl, 2000);

                                            }
                                            lock = 0;
                                        }

                                    }, 'json');
                                }else {
                                    $('.pop-warning4').html("验证码错误!").show();
                                    $('.security-code').click();
                                }
                            }, 'json');

                        };

                    }else{
                        $('.pop-warning').html("邮箱已存在!");
                    }
                });
            }

        }


    }
}
$(function(){
    loginpop.init();
    $(".mod-tips .close").on('click',function(){
        $(this).parents('.mod-tips').remove();
    });
    $('#diaregBtn,.diaRegBtn').on('click',function(){regpop.pop();})
    $('body').delegate('.regnow','click',function(){
        $('.popclose').click();
        regpop.pop();
    });

})

//})(jQuery)


//延时跳转
var delayJumpUrl = function(url,millisec){
	setTimeout(function(){
		window.location.href = url;
	},millisec)
}
var domain = function(url){	
		var durl=/http:\/\/([^\/]+)\//i;  
		var hosts = url.match(durl);
		hosts = hosts[1];
		d_arr = hosts.split('.');
		hosts = d_arr[d_arr.length - 2] + '.' + d_arr[d_arr.length - 1];   
		return hosts;
	}
var domain_pre = function(url){	
	var durl=/http:\/\/([^\/]+)\//i;  
	var hosts = url.match(durl);
	hosts = hosts[1];
	d_arr = hosts.split('.');
	return d_arr[0];
}

//搜索推荐
function commonSearch(){
    //获取类型页面,以及输入的内容
    var data = {
        'type' : 'course',
        'term' : ''
    };
    data['term'] = $('#web_search_header').val();
    $.ajax({  
        type:'get',        
        url : 'http://search.'+ domain(window.location.href) +'/Index/suggest',
        data : data ,
        dataType : 'jsonp',  
        jsonp:"jsonpcallback",  
        success  : function(data) {

            if (data) {
               if(data.length>0){
                   $('.keyword-list').show();
               } else{
                   $('.keyword-list').hide();
               }
                var str = ''; 
                for(var i=0;i<data.length;i++) {
                    if(i<6) {
                        str += "<li class='current'><a href='http://search."+domain(window.location.href)+"/s/t_course|sfilter_1|q_"+data[i]+"'> " + data[i] + "</a></li>";
                    }                   
                }
                $(".result-list").html(str);
                //console.log(data); 
            };           
        },  
        error : function() {  
            console.log("Fail");  
        }  
    });  
}
function isEmail( source ) {
    return /^[A-Z_a-z0-9-\.]+@([A-Z_a-z0-9-]+\.)+[a-z0-9A-Z]{2,4}$/.test( source );
};
function isMobile( source ) {
    return /^((\(\d{2,3}\))|(\d{3}\-))?(1[34578]\d{9})$/.test(source);
};

function isOkEmial(url,val){
    $.post(url,{ 'email':val, 'isajax':1},function(data){
        if(data.status == '1'){
            console.log(data.info)
            return true;
        }else{
            return false;
        }
    },'json');
}
// 密码加密
JKXY.safeCode = {
		init:function(obj){
			var obj = obj;
			var data = {isajax:1};
			$.post('/sso/genPwdVerify',data,function(json){
				obj.val(json.code);
			},'json');
		},
		//规避生成“+”号的加密密码	551434 504396
		aesCode : function(pwd,safecode){
			if( pwd && safecode )
			{
				var key_hash	= CryptoJS.MD5(safecode);
				var key			= CryptoJS.enc.Utf8.parse(key_hash);
				var iv			= CryptoJS.enc.Utf8.parse(key_hash.toString().substr(1^1, 16));
				var passworded	= CryptoJS.AES.encrypt(pwd.length+'|'+pwd, key, {iv:iv,mode:CryptoJS.mode.CBC,padding:CryptoJS.pad.ZeroPadding});
				passworded	= passworded.toString();
				//passworded	= passworded.replace( /(\+)/g, '*' );
				//passworded	= passworded.replace( /(\s)/g, '|' );
				return passworded;
			}
			return false;
		}
}


/* 密码强度检测 */
var pwdStrong	= {
    level:['', '太简单了', '一般般', '很安全'],
    main: function( jq_obj, val ) {
        if( val == '' )
        {
            return 0;
        }
        var jq_obj	= jq_obj;
        var strongRegex	= new RegExp("^(?=.{8,})(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*\\W).*$", "g");
        var mediumRegex	= new RegExp("^(?=.{7,})(((?=.*[A-Z])(?=.*[a-z]))|((?=.*[A-Z])(?=.*[0-9]))|((?=.*[a-z])(?=.*[0-9]))).*$", "g");
        var enoughRegex	= new RegExp("(?=.{6,}).*", "g");
        if ( false == enoughRegex.test(val) )
        {
            return 1;
        }
        else if (strongRegex.test(val))
        {
            return 3;
        }
        else if (mediumRegex.test(val))
        {
            return 2;
        }
        else
        {
            return 1;
        }
        return false;
    },
    genReport:function( jq_obj, val ) {
        if( typeof(jq_obj) && jq_obj )
        {
            var level_id	= pwdStrong.main( jq_obj, val );
            pwdStrong.handleReport( jq_obj, level_id );
            if( typeof( callBack ) == 'function' )
            {
                callBack( jq_obj, level_id );
            }
        }
    },
    passwordSix:function(value){
        len = value.length
        if(len < 6 && len>0){
            $this.next().next('.warning').remove();
            $this.next().after("<span  class='warning wrong' cktype='false'>密码长度不小于6位</span>")
        }else{
            $this.next().next('.warning').remove();
        }
    },
    passwordLen:function(value,cla,txt){ //字符限制
        var realLength = 0, len = value.length, charCode = -1;
        if(arguments.length== 1){
            for (var i = 0; i < len; i++) {
                charCode = value.charCodeAt(i);

                if (charCode < 32 || charCode > 126){
                    $this.next().next('.warning').remove();
                    $this.next().after("<span  class='warning wrong' cktype='false'>只能包括英文字母、数字和下划线及半角标点符号</span>")
                }  else {
                    $this.next('.warning').remove();
                }
            }
        } else{
            for (var i = 0; i < len; i++) {
                charCode = value.charCodeAt(i);

                if (charCode < 32 || charCode > 126){
                    $(cla).html(txt)
                }  else {

                }
            }
        }



    },
    callBack: '',
    handleReport: function( jq_obj, level_id ) {
        switch (level_id){
            case 1:
                jq_obj.next('.pwd-strong').find('span').css("background",'#ddd');
                jq_obj.next('.pwd-strong').find('span').eq(0).css("background","#da4619");
                break;
            case 2:
                jq_obj.next('.pwd-strong').find('span').css("background",'#ddd');
                jq_obj.next('.pwd-strong').find('span:lt(2)').css("background","#ff5c00");
                break;
            case 3:
                jq_obj.next('.pwd-strong').find('span').css("background",'#35b558');
                break;
        }
//				jq_obj.next('.pwd-strong').find('span').each(function(){
//
//
					if( $(this).attr('level') <= level_id )
					{
					    $(this).removeClass('active').addClass('active');

					}
					else
					{
						$(this).removeClass('active');
					}
//				});

    }
};

/*
 * @project		jikejie
 * @copyright	www.jikexueyuan.com
 * @author		zhanghaibin
 */
var JKJP = {
	init: function() {
		this.bindEle();
		this.swiper();
		this.floatNav();
		this.getServerTime();
		this.tabEvent(".jkj-works-tab .tabs li", ".jkj-works-tab .tabbed .tabGroup", "curr");
	},
	getServerTime: function(){
		//获取服务器活动的时间
		$.ajax({
			url : '/index/getServerTime',
			type : 'POST' ,
			data : '' ,
			dataType : 'json' ,
			contentType : "application/x-www-form-urlencoded; charset=utf-8",
			success : function(res){
				var server_time = res ;
				var	tmEndDate = new Date("2015/03/23 00:00:00"),
					aEndDate = new Date("2015/03/25 00:00:00"),
					jEndDate = new Date("2015/03/31 01:00:00");
					
				JKJP.tmCountdown(server_time, tmEndDate);
				JKJP.activityCountdown(server_time, aEndDate);
				JKJP.jobCountdown(server_time, jEndDate);
			}
		});
	},
	bindEle: function() {
		$('.backTop'	).bind('click', this.backTop);
		$('.jkj-share').bind('click',this.weiboShare);
		$('#jkj-prize').bind('click', function() {
			JKJP.prizePop(JKJP.prizeBeforeHtml());
		});
		$('#video_profile').bind('click' , function(){
			JKJP.videoHandle('video_profile');
		});
		$('.video_profile1').delegate('video' , 'click' , function(){
			JKJP.videoHandle('video_profile1');
		});
	},
	videoHandle:function(id){
		var myVideo=document.getElementById(id);
		if (myVideo.paused) {
			//视频播放记录
				var data = {'type' : 'videoRecord' , 'activity' : 'prepare'}
				$.ajax({
					type : 'POST' ,
					url	: '/shiguangji/hNum' ,
					data : data ,
					dataType : 'json' ,
					contentType : "application/x-www-form-urlencoded; charset=utf-8",
					success : function(res){

					}
				});
		};
	},
	reload: function() {
		location.reload();
	},
	activityCountdown: function(startdate,enddate) {
		if ($('#jkj-code')) {
			$('#jkj-code').typing();
		}

		//活动开始倒计时
		var _time = new JKJP.showTimes(startdate, enddate, 1000);
		_time.atTime(_a, _b);

		function _a() {
			$('#jkj-countdown').hide();
			JKJP.links()	;
			JKJP.tipsPop('.jkj-jsq .jkj-tips-rule', '#jkj-jsq-tips');
			JKJP.tipsPop('.jkj-works .jkj-tips-awards', '#jkj-works-tips');
			$('.jkj-cloud, #jkj-video').hide();
			$('.jkj-cloud:last').show();
			$('.jkj-qrcode').remove();
			$('.jkj-works-tab .tabs li, #jkj-jsqBtnMonth, #jkj-jsqBtnYear').addClass("jkj-link-pointer"	);
			$('#jkj-prize').removeClass('jkj-prize-over').addClass('jkj-video-link');
			//解绑
			$('#jkj-prize').unbind('click');
			//绑定video弹出事件
			$('.jkj-video-link').bind('click', JKJP.videoPop);
		}

	    function _b() {
	        $('#jkj-countdown').html('<span>' + arguments[0] + '</span><span>' + arguments[1] + '</span><span>' + arguments[2] + '</span><span>' + arguments[3] + '</span>');
			$('#jkj-video,.jkj-cloud').show();
			$('#jkj-countdown').show();

	    }
	},
	tmCountdown: function(startdate, enddate) {
		//招聘开始倒计时
		var _time = new JKJP.showTimes(startdate, enddate, 1000);
		_time.atTime(_a, _b);
		
		function _a() {
			$('#jkj-timemachine a').attr("href", jkj_url + "/shiguangji").addClass("jkj-link-pointer");
		}

	    function _b() {

	    }
	},
	jobCountdown: function(startdate, enddate) {
		//招聘开始倒计时
		var _time = new JKJP.showTimes(startdate, enddate, 1000);
		_time.atTime(_a, _b);
		
		function _a() {
			$('.jkj-goto-job').attr("href", "http://325.jikexueyuan.com").addClass("jkj-link-pointer");
			$('#jkj-jobBtn').attr("href", "http://325.jikexueyuan.com").addClass("jkj-link-pointer");
			$('.jkj-cloud').hide();
		}

	    function _b() {

	    }
	},
	swiper: function() {
		var partnerSwiper = new Swiper('#jkj-partner .swiper-container', {
			loop: true,
			grabCursor: true,
			autoplay: 5000,
			slidesPerView: 5
		});
		$('#jkj-partner .arrow-left').on('click', function(e) {
			e.preventDefault()
			partnerSwiper.swipePrev()
		});
		$('#jkj-partner .arrow-right').on('click', function(e) {
			e.preventDefault()
			partnerSwiper.swipeNext()
		});
	},
	floatNav: function(){
		var $this = $('#jkj-floatNav');
		var myDivTop = $this.position().top;
		$(window).scroll(function(){
			var scrollTop = $(document).scrollTop();
			if(scrollTop >= myDivTop - 200){
				$this.addClass('fixed');
			} else if (scrollTop <= myDivTop) {
				$this.removeClass('fixed');
			};
		});
	},
	tipsPop: function(obj, tips) {
		$(obj).hover(function() {
			$(this).addClass('jkj-link-pointer');
			$(tips).show();
		}, function() {
			$(tips).hide();
		});
	},
	links: function() {
		$('.jkj-goto-works').attr("href", "http://325.jikexueyuan.com").addClass("jkj-link-pointer");
		$('.jkj-goto-jzy').attr("href", "http://325.jikexueyuan.com").addClass("jkj-link-pointer");
		$('#jkj-jzyBtn').attr("href", "http://325.jikexueyuan.com").addClass("jkj-link-pointer");
		$('#jkj-worksBtn').attr("href", "http://325.jikexueyuan.com").addClass("jkj-link-pointer");
		$('#jkj-worksBtn').attr("href", "http://325.jikexueyuan.com").addClass("jkj-link-pointer");

	},
	backTop: function(obj) {
		$('html,body').animate({scrollTop: 0},300);
	},
	weiboShare: function() {
		new ShareTo.weibo();
	},
	tabEvent: function(tabs, tabGroup, curr) {
		var $tabs = $(tabs),
			$tabGroup = $(tabGroup);

		$tabs.each(function(i) {
			var $this = $(this);
			$tabs.eq(0).mouseover();
			$this.mouseover(function() {
				$tabs.removeClass(curr);
				$this.addClass(curr);
				$tabGroup.eq(i).show().siblings().hide();
			})
		});

	},

	videoPop: function() {
		$('#jkj-video').tooltip("pop", {
			width: 550,
			height: 340,
			popId: '#jkj-video',
			opacity: 0.4,
			popFunc: function() {
				$('#jkj-video').children('.jkj-video').addClass('jkj-video-pop');
			}
		});
	},
	prizeBeforeHtml: function() {
		if (isLogin) {
			var data = {'isAjax' : 1};
			$.ajax({
				type 	: 'POST' ,
				url	: '/index/handleReward' ,
				data : data ,
				dataType : 'json' ,
				contentType : "application/x-www-form-urlencoded; charset=utf-8",
				success : function(res){
					if (res.email_type == 1) {
						if (res.end == 1) {
							//如果登录且验证邮箱了且活动是非正常状态
							JKJP.prizePop(JKJP.prizeEndHtml());

						}else{
							//如果登录且验证邮箱了且活动是正常状态
							
							if (res.have_get) {
								JKJP.prizePop(JKJP.prizeAfterHtml());
							}else{
								JKJP.prizePop(JKJP.prizeHtml());
							};
						};


					}else{
						//如果登录但是没有验证邮箱
						JKJP.prizePop(JKJP.prizeEmailNoType());
					};
				}
			});

		}/*else{
			//如果没有登录,弹窗提示
			var html = '<div id="jkj-prize-pop" class="dialog jkj-prize-pop">';
			html += '<div class="dialog-box">';
			html += ' <h3><i class="popclose"></i></h3>';
			html += '<div class="bd">';
			html += '<h4>抱歉,登录之后才能领取礼包!</h4>';
			html += '<div class="btnWrap popclose"><a href="javascript:;" class="greenbtn jkj-btn">确认</a></div>';
			html += '</div>';
			html += '</div>';
			html += '</div>';
		};*/
		//return html;

	},
	prizeHtml: function(){
		//成功领取礼包的提示
		var html = '<div id="jkj-prize-pop" class="dialog jkj-prize-pop">';
			html += '<div class="dialog-box">';
			html += ' <h3><i class="popclose"></i></h3>';
			html += '<div class="bd">';
			html += '<h4>恭喜你成功领取 极客节礼包</h4>';
			html += '<p>极客学院5天VIP</p>';
			html += '<p>Uber打车 30元首程兑换券(兑换码:JIKEXUEYUAN)</p>';
			html += '<p>功夫熊上门推拿    100元兑换券(兑换码:jike85)</p>';
			html += '<div class="btnWrap popclose"><a href="javascript:;" class="greenbtn jkj-btn">确认</a></div>';
			html += '</div>';
			html += '</div>';
			html += '</div>';
		return html ;
	},
	prizeEmailNoType: function(){
		//没有验证邮箱的提示
		var html = '<div id="jkj-prize-pop" class="dialog jkj-prize-pop">';
			html += '<div class="dialog-box">';
			html += ' <h3><i class="popclose"></i></h3>';
			html += '<div class="bd">';
			html += '<h4>验证邮箱用户才能领取礼包!</h4><a target="_blank" style="font-size:14px;" href="'+www_url+'member/freevip.html">立即验证</a>';
			html += '<div class="btnWrap popclose"><a href="javascript:;" class="greenbtn jkj-btn">确认</a></div>';
			html += '</div>';
			html += '</div>';
			html += '</div>';
		return html ;
	},
	prizeEndHtml: function(){
		//验证邮箱,但是活动已经处于非正常状态的提示
		var html = '<div id="jkj-prize-pop" class="dialog jkj-prize-pop">';
			html += '<div class="dialog-box">';
			html += ' <h3><i class="popclose"></i></h3>';
			html += '<div class="bd">';
			html += '<h4>礼包已被抢光啦,下次要趁早哦~</h4>';
			html += '<div class="btnWrap popclose"><a href="javascript:;" class="greenbtn jkj-btn">确认</a></div>';
			html += '</div>';
			html += '</div>';
			html += '</div>';
		return html ;
	},
	prizeAfterHtml: function() {
		//礼品领取后的弹窗
		var html = '<div id="jkj-prize-pop" class="dialog jkj-prize-pop jkj-prize-pop-over">';
		html += '<div class="dialog-box">';
		html += ' <h3><i class="popclose"></i></h3>';
		html += '<div class="bd">';
		html += '<h4>你已领取过 极客节礼包,礼包包含:</h4>';
		html += '<p>极客学院5天VIP</p>';
		html += '<p>Uber打车 30元首程兑换券(兑换码:JIKEXUEYUAN)</p>';
		html += '<p>功夫熊上门推拿    100元兑换券(兑换码:jike85)</p>';
		html += '<div class="btnWrap popclose"><a href="javascript:;" class="greenbtn jkj-btn">确认</a></div>';
		html += '</div>';
		html += '</div>';
		html += '</div>';
		return html;

	},
	prizePop: function(html) {
		//礼品领取弹层
		$().tooltip("pop", {
			width: 550,
			height: 'auto',
			popId: '#jkj-prize-pop',
			opacity: 0.4,
			popHtml: html
		});
	}
};

(function ($) {
	var clicknumber = 0;
	var methods = {
		init: function (options) {},
		pop: function (options) {//弹出层
			var _H = $(window).height() ;
			var _W = $(window).width() ;
			var jumpstop = 0;
			var stop=1;
			/*
			* options.width(number)	弹出层宽度(必选)
			* options.height(number) 弹出层高度(必选)
			* options.zIndex(number) 弹出层index轴 ,默认为9999;(可选)
			* options.poparent(jquery节点) 要插入的父节点,默认为‘body’(可选)
			* options.opacity(0~1) 背景透明度(可选)
			* option.popId(jqeury节点 ) 要插入的弹出层ID或者calss,最好为ID,强调唯一性!(必选)
			* option.popHtml(插入弹出层元素结构) 如“<div id='test'></div>";(可选)
			* option.popFunc(function方法) 弹出层回调方法;(可选)
			* option.closePop(function方法) 关闭回调方法;(可选)
			* option.time(1~100000)//X秒跳转,X为整数,如:1为1秒(可选)
			* option.timeId(id)//为一个ID节点,用来储存时间显示(可选)
			* option.url(URL)//一个链接,倒计时跳转路径。(可选)
			* 关闭按钮约定名称为 calss = popclose;(可选)
			* */
			var settings = {
				'width': 100,
				'height':100,
				'zIndex':9999,
				'poparent':'body',
				'opacity':0.5,
				'popId':null,
				'popHtml':null,
				'popFunc':null,
				'time':null,
				'timeId':null,
				'url':null,
				'closePop':null
			};
			// 如果存在选项,则合并之
			if (options) {
				$.extend(settings, options);
			}
			var popTop;
			var popLeft = (_W - settings.width) / 2;
			if(settings.popHtml === null) {
				return this.each(function () {
					var $this = $(this);
					if(settings.height =='auto'){
						settings.height=$this.height();
					};
					popTop = (_H - settings.height) / 2;
					$this.show();
					$this.css({width: settings.width, height: settings.height, zIndex: settings.zIndex, top: popTop, left: popLeft,position: 'fixed'});
					closebox();
					if(settings.time !== null ){
						jump(settings.time,settings.timeId,settings.url);
					}
				});
			}else if(settings.popHtml !==null){
				$(settings.poparent).append(settings.popHtml);
				if(settings.height =='auto'){
					settings.height=$(settings.popId).height();
				};
				popTop = (_H - settings.height) / 2;
				$(settings.popId).css({width: settings.width, height: settings.height, zIndex: settings.zIndex, top: popTop, left: popLeft,position: 'fixed'});
				closebox()
			};
			function closebox(){
				if(settings.popFunc !== null) {
					settings.popFunc()
				};
				var backlayer ="<div id='blacklayer'></div>"
				$("body").append(backlayer);
				var dh = $(document).height();

				$('#blacklayer').css({zIndex:settings.zIndex-10,background:"#000",opacity:settings.opacity,position:'absolute',left:0,top:0,width:'100%',height:dh})
				$('.popclose').bind("click",function(){
					stop=0;
					$('#blacklayer').remove();
					var myVideo=document.getElementById("video_profile");
					myVideo.pause();
					if(settings.popHtml === null){
						$(settings.popId).hide();
					} else{
						$(settings.popId).remove();
					}
					if(settings.closePop!=null){
						settings.closePop();
					}
				})
			}

			if(settings.time !== null ){

				jump(settings.time,settings.timeId,settings.url);
			}
			function jump (time,element_id,url) { //X秒跳转
				if(stop===0) return false
				_jumpfunc =	window.setTimeout(function(){
					time--;
					if(time > 0) {
						if(jumpstop== 1 ){
							return false;
						} else{

							$(element_id).html(time+"秒");
							jump(time,element_id,url)
						}
					} else {
						if(url ==null){
							$('#blacklayer').remove();
							$(settings.popId).remove();
						} else{
							document.location=url;
						}
					}
				}, 1000);
			}
		},
		tag: function (options) {//标签切换
			var settings={
				'type':"click",
				'selected':'on',
				'contentClass':'.content',
				'func':null
			};
			// 如果存在选项,则合并之
			if (options) {
				$.extend(settings, options);
			}
			if(settings.type != 'click' && settings.type != 'mouseover' ) return false;
			$(this).eq(0).addClass(settings.selected);
			return this.each(function(){
				var $this = $(this);
				$(settings.contentClass).hide();
				$(settings.contentClass).eq(0).show();
				$this.bind(settings.type,contentShow);
				function contentShow(){
					var _index = $this.index();
					$this.siblings().removeClass(settings.selected);
					$this.addClass(settings.selected);
					$(settings.contentClass).hide();
					$(settings.contentClass).eq(_index).show();
					if(settings.func!=null){
						settings.func();
					}
				}
			})
		},
		imgmove: function(options){//多小图片幻灯
			var settings = {
				oneEle:null,
				oneWidth:null,
				loop:false,
				boxWidth:null,
				prev:null,
				next:null
			}
			// 如果存在选项,则合并之
			if (options)
			{
				$.extend(settings, options);
			}
			function movefunc(){
				var number = $(settings.oneEle).size();
				var length =number*settings.oneWidth;
				var boxlen = length/settings.boxWidth;
				if(boxlen%settings.boxWidth > 0){
					boxlen+1;
				}
				var par =	$(settings.oneEle).parent();
				if (settings.loop== true){
					$(settings.oneEle).parent().width(length).css("left",-settings.oneWidth);
					var par =  $(settings.oneEle).parent();
					var li = $(settings.oneEle).last();
					par.prepend(li.clone())
					li.remove();
				} else{
					$(settings.oneEle).parent().width(length);
				}
				$(settings.prev).click(function(){
					if (settings.loop== true){
						var li = $(settings.oneEle).last();
						TweenMax.to(par, 1, {left:0,onComplete:function(){
							 par.prepend(li.clone())
							 par.css("left",-settings.oneWidth);
							$(settings.oneEle).last().remove();
						},ease:Quart.easeOut});
					} else{
						if(clicknumber>0){
							clicknumber--;
							TweenMax.to( par, 1, {left:-settings.boxWidth*clicknumber,ease:Quart.easeOut});

						};
					}
				});
				$(settings.next).click(function(){
					if (settings.loop== true){
						TweenMax.to(par, 0.4, {left:-settings.oneWidth,onComplete:function(){
							par.css("left","0px");
							var li = $(settings.oneEle).slice(0, 1);
							par.append(li.clone())
							$(settings.oneEle).slice(0, 1).remove();
						},ease:Quart.easeOut});
					} else{
						if(clicknumber<boxlen-1){
							clicknumber++
							TweenMax.to(par, 1, {left:-settings.boxWidth*clicknumber,ease:Quart.easeOut});
						}
					}
				});
			}
			movefunc();
		}
	};
	$.fn.tooltip = function (method) {
		// Method calling logic
		if (methods[method]) {
			return methods[ method ].apply(this, Array.prototype.slice.call(arguments, 1));
		} else if (typeof method === 'object' || !method) {
			return methods.init.apply(this, arguments);
		} else {
			$.error('Method ' + method + ' does not exist on jQuery.tooltip');
		}
	};
})(jQuery);

JKJP.showTimes = function (startTime, lastTime, step) {
    this.startTime = Date.parse(startTime);  //开始时间
    this.lastTime = Date.parse(lastTime);  //到期时间
    this.step = step;  //执行的阶段时间,一般是1秒,即1000
};
JKJP.showTimes.prototype = {
    atTime: function (a, b) {
        //参数说明:a:到期回调方法,b:倒计时回调方法
        var that = this;
        var timeold = parseFloat(Number(that.lastTime) - Number(that.startTime));
        var msPerDay = 24 * 60 * 60 * 1000;
        var e_daysold = timeold / msPerDay
        var daysold = Math.floor(e_daysold);  //天
        var e_hrsold = (e_daysold - daysold) * 24;
        var hrsold = Math.floor(e_hrsold);  //小时
        var e_minsold = (e_hrsold - hrsold) * 60;
        var minsold = Math.floor((e_hrsold - hrsold) * 60);  //分钟
        var seconds = Math.floor((e_minsold - minsold) * 60);  //秒
        var msSeconds = Math.ceil(Math.floor(((e_minsold - minsold) * 60 - seconds) * 1000) / 100) * 10;
        if (msSeconds == 100) {
            msSeconds = 99;
        }
        if (that.startTime >= that.lastTime) {
            arguments[0]();
        } else {
            arguments[1](that.getStr(daysold), that.getStr(hrsold), that.getStr(minsold), that.getStr(seconds), that.getStr(msSeconds));
            that.startTime = parseInt(that.startTime) + that.step;
            window.setTimeout(function () {
                that.atTime(a, b);
            }, that.step);
        }
    },
    getStr: function (num) {
        return num.toString().length < 2 ? "0" + num : num;
    }
};

$(function() {
	JKJP.init();
})





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值