﻿(function($){$.fn.maxlength=function(options){var settings=jQuery.extend({events:[],maxCharacters:10,status:true,statusClass:"status",statusText:"{0} character(s) left",notificationClass:"notification",showAlert:false,alertText:"You have typed too many characters.",slider:false},options);$.merge(settings.events,['keyup']);return this.each(function(){var item=$(this);var charactersLength=$(this).val().length;function updateStatus(){var charactersLeft=settings.maxCharacters-charactersLength;if(charactersLeft<0){charactersLeft=0;}item.next("div").html(settings.statusText.replace('{0}',charactersLeft));}function checkChars(){var valid=true;if(charactersLength>=settings.maxCharacters){valid=false;item.addClass(settings.notificationClass);item.val(item.val().substr(0,settings.maxCharacters));showAlert();}else{if(item.hasClass(settings.notificationClass)){item.removeClass(settings.notificationClass);}}if(settings.status){updateStatus();}}function showAlert(){if(settings.showAlert){alert(settings.alertText);}}function validateElement(){var ret=false;if(item.is('textarea')){ret=true;}else if(item.filter("input[type=text]")){ret=true;}else if(item.filter("input[type=password]")){ret=true;}return ret;}if(!validateElement()){return false;}$.each(settings.events,function(i,n){item.bind(n,function(e){charactersLength=item.val().length;checkChars();});});if(settings.status){item.after($("<div/>").addClass(settings.statusClass).html('-'));updateStatus();}if(!settings.status){var removeThisDiv=item.next("div."+settings.statusClass);if(removeThisDiv){removeThisDiv.remove();}}if(settings.slider){item.next().hide();item.focus(function(){item.next().slideDown('fast');});item.blur(function(){item.next().slideUp('fast');});}});};})(jQuery);
