1jQuery(document).ready(function($) { 2 var $form_modal = $('.cd-user-modal'), 3 $form_login = $form_modal.find('#cd-login'), 4 $form_signup = $form_modal.find('#cd-signup'), 5 $form_forgot_password = $form_modal.find('#cd-reset-password'), 6 $form_modal_tab = $('.cd-switcher'), 7 $tab_login = $form_modal_tab.children('li').eq(0).children('a'), 8 $tab_signup = $form_modal_tab.children('li').eq(1).children('a'), 9 $forgot_password_link = $form_login.find('.cd-form-bottom-message a'), 10 $back_to_login_link = $form_forgot_password.find('.cd-form-bottom-message a'), 11 $main_nav = $('.cd-log_reg'); 12 13 //open modal 14 $main_nav.on('click', function(event) { 15 16 if ($(event.target).is($main_nav)) { 17 // on mobile open the submenu 18 $(this).children('ul').toggleClass('is-visible'); 19 } else { 20 // on mobile close submenu 21 $main_nav.children('ul').removeClass('is-visible'); 22 //show modal layer 23 $form_modal.addClass('is-visible'); 24 //show the selected form 25 ($(event.target).is('.cd-signup')) ? signup_selected() : login_selected(); 26 } 27 28 }); 29 30 //close modal 31 $('.cd-user-modal').on('click', function(event) { 32 if ($(event.target).is($form_modal) || $(event.target).is('.cd-close-form')) { 33 $form_modal.removeClass('is-visible'); 34 } 35 }); 36 //close modal when clicking the esc keyboard button 37 $(document).keyup(function(event) { 38 if (event.which == '27') { 39 $form_modal.removeClass('is-visible'); 40 } 41 }); 42 43 //switch from a tab to another 44 $form_modal_tab.on('click', function(event) { 45 event.preventDefault(); 46 ($(event.target).is($tab_login)) ? login_selected() : signup_selected(); 47 }); 48 49 //hide or show password 50 $('.hide-password').on('click', function() { 51 var $this = $(this), 52 $password_field = $this.prev('input'); 53 54 ('password' == $password_field.attr('type')) ? $password_field.attr('type', 'text') : $password_field.attr('type', 'password'); 55 ('Hide' == $this.text()) ? $this.text('Show') : $this.text('Hide'); 56 //focus and move cursor to the end of input field 57 $password_field.putCursorAtEnd(); 58 }); 59 60 //show forgot-password form 61 $forgot_password_link.on('click', function(event) { 62 event.preventDefault(); 63 forgot_password_selected(); 64 }); 65 66 //back to login from the forgot-password form 67 $back_to_login_link.on('click', function(event) { 68 event.preventDefault(); 69 login_selected(); 70 }); 71 72 function login_selected() { 73 $form_login.addClass('is-selected'); 74 $form_signup.removeClass('is-selected'); 75 $form_forgot_password.removeClass('is-selected'); 76 $tab_login.addClass('selected'); 77 $tab_signup.removeClass('selected'); 78 } 79 80 function signup_selected() { 81 $form_login.removeClass('is-selected'); 82 $form_signup.addClass('is-selected'); 83 $form_forgot_password.removeClass('is-selected'); 84 $tab_login.removeClass('selected'); 85 $tab_signup.addClass('selected'); 86 } 87 88 function forgot_password_selected() { 89 $form_login.removeClass('is-selected'); 90 $form_signup.removeClass('is-selected'); 91 $form_forgot_password.addClass('is-selected'); 92 } 93 94 //REMOVE THIS - it's just to show error messages 95 $form_login.find('input[type="submit"]').on('click', function(event) { 96 event.preventDefault(); 97 $form_login.find('input[type="email"]').toggleClass('has-error').next('span').toggleClass('is-visible'); 98 }); 99 $form_signup.find('input[type="submit"]').on('click', function(event) { 100 event.preventDefault(); 101 $form_signup.find('input[type="email"]').toggleClass('has-error').next('span').toggleClass('is-visible'); 102 }); 103 104 105 //IE9 placeholder fallback 106 //credits http://www.hagenburger.net/BLOG/HTML5-Input-Placeholder-Fix-With-jQuery.html 107 if (!Modernizr.input.placeholder) { 108 $('[placeholder]').focus(function() { 109 var input = $(this); 110 if (input.val() == input.attr('placeholder')) { 111 input.val(''); 112 } 113 }).blur(function() { 114 var input = $(this); 115 if (input.val() == '' || input.val() == input.attr('placeholder')) { 116 input.val(input.attr('placeholder')); 117 } 118 }).blur(); 119 $('[placeholder]').parents('form').submit(function() { 120 $(this).find('[placeholder]').each(function() { 121 var input = $(this); 122 if (input.val() == input.attr('placeholder')) { 123 input.val(''); 124 } 125 }) 126 }); 127 } 128 129}); 130 131
132//credits http://css-tricks.com/snippets/jquery/move-cursor-to-end-of-textarea-or-input/ 133jQuery.fn.putCursorAtEnd = function() { 134 return this.each(function() { 135 // If this function exists... 136 if (this.setSelectionRange) { 137 // ... then use it (Doesn't work in IE) 138 // Double the length because Opera is inconsistent about whether a carriage return is one character or two. Sigh. 139 var len = $(this).val().length * 2; 140 this.setSelectionRange(len, len); 141 } else { 142 // ... otherwise replace the contents with itself 143 // (Doesn't work in Google Chrome) 144 $(this).val($(this).val()); 145 } 146 }); 147};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.