(function($) {
$.fn.maxlength = function(options){
var settings = jQuery.extend({
events:	[],
maxCharacters:	64,
status:	true,
statusClass:	"status",
statusText1:	"Sie haben noch",
statusText:	"Zeichen &uuml;brig.",
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.statusText1+" "+charactersLeft+" "+settings.statusText)}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);
