From 37599d7a4fc14a58ab2e5be03f4b0720e033dea7 Mon Sep 17 00:00:00 2001 From: Andrew Tomaka Date: Mon, 26 Aug 2013 23:57:28 -0400 Subject: [PATCH 1/6] Move javascript to separate file. --- index.html | 47 +---------------------------------------------- js/passwd.js | 44 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+), 46 deletions(-) create mode 100644 js/passwd.js diff --git a/index.html b/index.html index 17b6b8c..6b5e19a 100755 --- a/index.html +++ b/index.html @@ -43,51 +43,6 @@ - + diff --git a/js/passwd.js b/js/passwd.js new file mode 100644 index 0000000..cf61b5d --- /dev/null +++ b/js/passwd.js @@ -0,0 +1,44 @@ +$(document).ready(function() { + $('input').corner('round 4px'); + $('button').corner('round 4px'); + $('#box').corner('round bottom'); + + $('#root').focus(); +}); + +$('#generate input').on('input', function() { + var root = $('#root').val(); + var master = $('#master').val() + var hash = $.md5(root + master); + + hash = hash.replace(/[a-f]/, function(alpha) { + return alpha.toUpperCase(); + }); + + if(root in special) { + $('#password').val(special[root](hash)); + } else { + $('#password').val(hash); + } +}); + +var currentFocus; +var lastFocus; +$(':input').focus(function() { + currentFocus = this; +}); + +$(document).keydown(function(e) { + var keycode = e.keycode || e.which; + if(keycode == 17 || keycode == 91) { + lastFocus = currentFocus; + $('#password').focus().select(); + } +}); + +$(document).keyup(function(e) { + var keycode = e.keycode || e.which; + if(keycode == 17 || keycode == 91) { + lastFocus.focus(); + } +}); From a8afb22a3438427f3cff53269af0044ecc0d6f5c Mon Sep 17 00:00:00 2001 From: Andrew Tomaka Date: Tue, 27 Aug 2013 00:00:52 -0400 Subject: [PATCH 2/6] Upgrade jquery --- index.html | 3 +-- js/passwd.js | 4 ---- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/index.html b/index.html index 6b5e19a..9d4cb5c 100755 --- a/index.html +++ b/index.html @@ -39,8 +39,7 @@ - - + diff --git a/js/passwd.js b/js/passwd.js index cf61b5d..7ca9e75 100644 --- a/js/passwd.js +++ b/js/passwd.js @@ -1,8 +1,4 @@ $(document).ready(function() { - $('input').corner('round 4px'); - $('button').corner('round 4px'); - $('#box').corner('round bottom'); - $('#root').focus(); }); From 9f93b82223e81ea775704fb0c208499d1415bfe4 Mon Sep 17 00:00:00 2001 From: Andrew Tomaka Date: Tue, 27 Aug 2013 00:42:23 -0400 Subject: [PATCH 3/6] Remove temp variables for form fields --- js/passwd.js | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/js/passwd.js b/js/passwd.js index 7ca9e75..39acb95 100644 --- a/js/passwd.js +++ b/js/passwd.js @@ -3,16 +3,14 @@ $(document).ready(function() { }); $('#generate input').on('input', function() { - var root = $('#root').val(); - var master = $('#master').val() - var hash = $.md5(root + master); + var hash = $.md5($('#root').val() + ('#master').val()); hash = hash.replace(/[a-f]/, function(alpha) { return alpha.toUpperCase(); }); - if(root in special) { - $('#password').val(special[root](hash)); + if($('#root').val() in special) { + $('#password').val(special[$('#root').val()](hash)); } else { $('#password').val(hash); } From 6c27ee0789b47a9149e10aad631dfc398c89ae91 Mon Sep 17 00:00:00 2001 From: Andrew Tomaka Date: Tue, 27 Aug 2013 00:59:21 -0400 Subject: [PATCH 4/6] Reduce function sizes --- js/passwd.js | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/js/passwd.js b/js/passwd.js index 39acb95..341f98e 100644 --- a/js/passwd.js +++ b/js/passwd.js @@ -3,18 +3,20 @@ $(document).ready(function() { }); $('#generate input').on('input', function() { - var hash = $.md5($('#root').val() + ('#master').val()); + hash = generatePassword($('#root').val(), $('#master').val()); - hash = hash.replace(/[a-f]/, function(alpha) { + $('#password').val(specialCase($('#root').val(), hash)); +}); + +function generatePassword(root, master) { + return $.md5(root + master).replace(/[a-f]/, function(alpha) { return alpha.toUpperCase(); }); +} - if($('#root').val() in special) { - $('#password').val(special[$('#root').val()](hash)); - } else { - $('#password').val(hash); - } -}); +function specialCase(root, hash) { + return (special[root] != undefined) ? special[root](hash) : hash; +} var currentFocus; var lastFocus; From 3cc377f9fa80aa406673d00aef8aaf33c3a3b158 Mon Sep 17 00:00:00 2001 From: Andrew Tomaka Date: Tue, 27 Aug 2013 01:08:45 -0400 Subject: [PATCH 5/6] Fix whitespace --- css/style.css | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/css/style.css b/css/style.css index f7ca65c..76fae36 100755 --- a/css/style.css +++ b/css/style.css @@ -1,5 +1,5 @@ html { - + } body { @@ -13,7 +13,7 @@ body { #wrapper { width: 380px; margin: auto; - margin-top: 150px; + margin-top: 150px; } #box { @@ -74,4 +74,4 @@ button { .hidden { text-indent: -9999px; -} \ No newline at end of file +} From 1aea8d9a5cca8d91fa709303aaf0b9bc37ed6bc0 Mon Sep 17 00:00:00 2001 From: Andrew Tomaka Date: Wed, 13 Nov 2013 16:46:03 -0500 Subject: [PATCH 6/6] Remove uneeded library --- js/jquery.corner.min.js | 1 - 1 file changed, 1 deletion(-) delete mode 100755 js/jquery.corner.min.js diff --git a/js/jquery.corner.min.js b/js/jquery.corner.min.js deleted file mode 100755 index 15078db..0000000 --- a/js/jquery.corner.min.js +++ /dev/null @@ -1 +0,0 @@ -;(function($){var style=document.createElement('div').style,moz=style['MozBorderRadius']!==undefined,webkit=style['WebkitBorderRadius']!==undefined,radius=style['borderRadius']!==undefined||style['BorderRadius']!==undefined,mode=document.documentMode||0,noBottomFold=$.browser.msie&&(($.browser.version<8&&!mode)||mode<8),expr=$.browser.msie&&(function(){var div=document.createElement('div');try{div.style.setExpression('width','0+0');div.style.removeExpression('width')}catch(e){return false}return true})();$.support=$.support||{};$.support.borderRadius=moz||webkit||radius;function sz(el,p){return parseInt($.css(el,p))||0};function hex2(s){s=parseInt(s).toString(16);return(s.length<2)?'0'+s:s};function gpc(node){while(node){var v=$.css(node,'backgroundColor'),rgb;if(v&&v!='transparent'&&v!='rgba(0, 0, 0, 0)'){if(v.indexOf('rgb')>=0){rgb=v.match(/\d+/g);return'#'+hex2(rgb[0])+hex2(rgb[1])+hex2(rgb[2])}return v}if(node.nodeName.toLowerCase()=='html')break;node=node.parentNode}return'#ffffff'};function getWidth(fx,i,width){switch(fx){case'round':return Math.round(width*(1-Math.cos(Math.asin(i/width))));case'cool':return Math.round(width*(1+Math.cos(Math.asin(i/width))));case'sharp':return width-i;case'bite':return Math.round(width*(Math.cos(Math.asin((width-i-1)/width))));case'slide':return Math.round(width*(Math.atan2(i,width/i)));case'jut':return Math.round(width*(Math.atan2(width,(width-i-1))));case'curl':return Math.round(width*(Math.atan(i)));case'tear':return Math.round(width*(Math.cos(i)));case'wicked':return Math.round(width*(Math.tan(i)));case'long':return Math.round(width*(Math.sqrt(i)));case'sculpt':return Math.round(width*(Math.log((width-i-1),width)));case'dogfold':case'dog':return(i&1)?(i+1):width;case'dog2':return(i&2)?(i+1):width;case'dog3':return(i&3)?(i+1):width;case'fray':return(i%2)*width;case'notch':return width;case'bevelfold':case'bevel':return i+1;case'steep':return i/2+1;case'invsteep':return(width-i)/2+1}};$.fn.corner=function(options){if(this.length==0){if(!$.isReady&&this.selector){var s=this.selector,c=this.context;$(function(){$(s,c).corner(options)})}return this}return this.each(function(index){var $this=$(this),o=[$this.attr($.fn.corner.defaults.metaAttr)||'',options||''].join(' ').toLowerCase(),keep=/keep/.test(o),cc=((o.match(/cc:(#[0-9a-f]+)/)||[])[1]),sc=((o.match(/sc:(#[0-9a-f]+)/)||[])[1]),width=parseInt((o.match(/(\d+)px/)||[])[1])||10,re=/round|bevelfold|bevel|notch|bite|cool|sharp|slide|jut|curl|tear|fray|wicked|sculpt|long|dog3|dog2|dogfold|dog|invsteep|steep/,fx=((o.match(re)||['round'])[0]),fold=/dogfold|bevelfold/.test(o),edges={T:0,B:1},opts={TL:/top|tl|left/.test(o),TR:/top|tr|right/.test(o),BL:/bottom|bl|left/.test(o),BR:/bottom|br|right/.test(o)},strip,pad,cssHeight,j,bot,d,ds,bw,i,w,e,c,common,$horz;if(!opts.TL&&!opts.TR&&!opts.BL&&!opts.BR)opts={TL:1,TR:1,BL:1,BR:1};if($.fn.corner.defaults.useNative&&fx=='round'&&(radius||moz||webkit)&&!cc&&!sc){if(opts.TL)$this.css(radius?'border-top-left-radius':moz?'-moz-border-radius-topleft':'-webkit-border-top-left-radius',width+'px');if(opts.TR)$this.css(radius?'border-top-right-radius':moz?'-moz-border-radius-topright':'-webkit-border-top-right-radius',width+'px');if(opts.BL)$this.css(radius?'border-bottom-left-radius':moz?'-moz-border-radius-bottomleft':'-webkit-border-bottom-left-radius',width+'px');if(opts.BR)$this.css(radius?'border-bottom-right-radius':moz?'-moz-border-radius-bottomright':'-webkit-border-bottom-right-radius',width+'px');return}strip=document.createElement('div');$(strip).css({overflow:'hidden',height:'1px',minHeight:'1px',fontSize:'1px',backgroundColor:sc||'transparent',borderStyle:'solid'});pad={T:parseInt($.css(this,'paddingTop'))||0,R:parseInt($.css(this,'paddingRight'))||0,B:parseInt($.css(this,'paddingBottom'))||0,L:parseInt($.css(this,'paddingLeft'))||0};if(typeof this.style.zoom!=undefined)this.style.zoom=1;if(!keep)this.style.border='none';strip.style.borderColor=cc||gpc(this.parentNode);cssHeight=$(this).outerHeight();for(j in edges){bot=edges[j];if((bot&&(opts.BL||opts.BR))||(!bot&&(opts.TL||opts.TR))){strip.style.borderStyle='none '+(opts[j+'R']?'solid':'none')+' none '+(opts[j+'L']?'solid':'none');d=document.createElement('div');$(d).addClass('jquery-corner');ds=d.style;bot?this.appendChild(d):this.insertBefore(d,this.firstChild);if(bot&&cssHeight!='auto'){if($.css(this,'position')=='static')this.style.position='relative';ds.position='absolute';ds.bottom=ds.left=ds.padding=ds.margin='0';if(expr)ds.setExpression('width','this.parentNode.offsetWidth');else ds.width='100%'}else if(!bot&&$.browser.msie){if($.css(this,'position')=='static')this.style.position='relative';ds.position='absolute';ds.top=ds.left=ds.right=ds.padding=ds.margin='0';if(expr){bw=sz(this,'borderLeftWidth')+sz(this,'borderRightWidth');ds.setExpression('width','this.parentNode.offsetWidth - '+bw+'+ "px"')}else ds.width='100%'}else{ds.position='relative';ds.margin=!bot?'-'+pad.T+'px -'+pad.R+'px '+(pad.T-width)+'px -'+pad.L+'px':(pad.B-width)+'px -'+pad.R+'px -'+pad.B+'px -'+pad.L+'px'}for(i=0;i').css(common).css({width:width+'px',height:'1px'});switch(c){case'TL':$horz.css({bottom:0,left:0});break;case'TR':$horz.css({bottom:0,right:0});break;case'BL':$horz.css({top:0,left:0});break;case'BR':$horz.css({top:0,right:0});break}d.appendChild($horz[0]);var $vert=$('
').css(common).css({top:0,bottom:0,width:'1px',height:width+'px'});switch(c){case'TL':$vert.css({left:width});break;case'TR':$vert.css({right:width});break;case'BL':$vert.css({left:width});break;case'BR':$vert.css({right:width});break}d.appendChild($vert[0])}}}}})};$.fn.uncorner=function(){if(radius||moz||webkit)this.css(radius?'border-radius':moz?'-moz-border-radius':'-webkit-border-radius',0);$('div.jquery-corner',this).remove();return this};$.fn.corner.defaults={useNative:true,metaAttr:'data-corner'}})(jQuery); \ No newline at end of file