jquery(document).ready(function($){
var $form_modal = $('.cd-user-modal'),
$form_login = $form_modal.find('#cd-login'),
$form_signup = $form_modal.find('#cd-signup'),
$form_modal_tab = $('.cd-switcher'),
$tab_login = $form_modal_tab.children('li').eq(0).children('a'),
$tab_signup = $form_modal_tab.children('li').eq(1).children('a');
window.$main_nav = $('.main_nav');
//弹出窗口
window.$main_nav.on('click', function(event){
if( $(event.target).is(window.$main_nav) ) {
// on mobile open the submenu
$(this).children('ul').toggleclass('is-visible');
} else {
// on mobile close submenu
window.$main_nav.children('ul').removeclass('is-visible');
//show modal layer
$form_modal.addclass('is-visible');
//show the selected form
( $(event.target).is('.cd-signup') ) ? signup_selected() : login_selected();
}
});
//关闭弹出窗口
$('.cd-user-modal').on('click', function(event){
if( $(event.target).is($form_modal) || $(event.target).is('.cd-close-form') ) {
$form_modal.removeclass('is-visible');
}
});
//使用esc键关闭弹出窗口
$(document).keyup(function(event){
if(event.which=='27'){
$form_modal.removeclass('is-visible');
}
});
//切换表单
$form_modal_tab.on('click', function(event) {
event.preventdefault();
( $(event.target).is( $tab_login ) ) ? login_selected() : signup_selected();
});
function login_selected(){
$form_login.addclass('is-selected');
$form_signup.removeclass('is-selected');
$tab_login.addclass('selected');
$tab_signup.removeclass('selected');
}
function signup_selected(){
$form_login.removeclass('is-selected');
$form_signup.addclass('is-selected');
$tab_login.removeclass('selected');
$tab_signup.addclass('selected');
}
login_success();
function login_success(){
$.ajax({
"url":"/ajax.php/member/init",
"type":"get",
"datatype":"json",
"data":{},
"success":function(data){
if(data.status == 100){
var html = '用户中心';
html += ' 退出';
$(".main_nav").html(html);
window.$main_nav.unbind("click");
}
}
});
}
var $loginform = $("form[name=login]");
$loginform.submit(function(e){
e.stoppropagation();
var username = $loginform.find("input[name=username]").val();
var password = $loginform.find("input[name=password]").val();
if(!username){
alert("请输入用户名");
$loginform.find("input[name=username]").focus();
return false;
}
if(!password){
alert("请输入密码");
$loginform.find("input[name=password]").focus();
return false;
}
$.ajax({
"url":"/ajax.php/member/login",
"type":"post",
"datatype":"json",
"data":{
"username":username,
"password":password
},
"success":function(data){
if(data.status == 100){
alert(data.message);
$form_modal.removeclass('is-visible');
login_success();
}else{
alert(data.message);
}
}
});
return false;
});
var $registerform = $("form[name=register]");
$registerform.submit(function(e){
e.stoppropagation();
var username = $registerform.find("input[name=username]").val();
var password = $registerform.find("input[name=password]").val();
var email = $registerform.find("input[name=email]").val();
var repeatpassword = $registerform.find("input[name=repeat-password]").val();
if(!username){
alert("请输入用户名");
$registerform.find("input[name=username]").focus();
return false;
}
if(!password){
alert("请输入密码");
$registerform.find("input[name=password]").focus();
return false;
}
if(repeatpassword != password){
alert("重复密码有误");
$registerform.find("input[name=repeat-password]").focus();
return false;
}
$.ajax({
"url":"/ajax.php/member/register",
"type":"post",
"datatype":"json",
"data":{
"username":username,
"password":password,
"email" : email
},
"success":function(data){
if(data.status == 100){
alert(data.message);
location.reload();
}else{
alert(data.message);
}
}
});
return false;
});
});
//credits http://css-tricks.com/snippets/jquery/move-cursor-to-end-of-textarea-or-input/
jquery.fn.putcursoratend = function() {
return this.each(function() {
// if this function exists...
if (this.setselectionrange) {
// ... then use it (doesn't work in ie)
// double the length because opera is inconsistent about whether a carriage return is one character or two. sigh.
var len = $(this).val().length * 2;
this.setselectionrange(len, len);
} else {
// ... otherwise replace the contents with itself
// (doesn't work in google chrome)
$(this).val($(this).val());
}
});
};