!function(n){var t=function(t,i){if(this.$element=n(t),this.type=this.$element.data("uploadtype")||(this.$element.find(".thumbnail").length>0?"image":"file"),this.$input=this.$element.find(":file"),this.$input.length!==0){this.name=this.$input.attr("name")||i.name;this.$hidden=this.$element.find('input[type=hidden][name="'+this.name+'"]');this.$hidden.length===0&&(this.$hidden=n('<input type="hidden" />'),this.$element.prepend(this.$hidden));this.$preview=this.$element.find(".fileupload-preview");var r=this.$preview.css("height");this.$preview.css("display")!="inline"&&r!="0px"&&r!="none"&&this.$preview.css("line-height",r);this.original={exists:this.$element.hasClass("fileupload-exists"),preview:this.$preview.html(),hiddenVal:this.$hidden.val()};this.$remove=this.$element.find('[data-dismiss="fileupload"]');this.$element.find('[data-trigger="fileupload"]').on("click.fileupload",n.proxy(this.trigger,this));this.listen()}};t.prototype={listen:function(){this.$input.on("change.fileupload",n.proxy(this.change,this));n(this.$input[0].form).on("reset.fileupload",n.proxy(this.reset,this));this.$remove&&this.$remove.on("click.fileupload",n.proxy(this.clear,this))},change:function(n,t){var i;if(t!=="clear"){if(i=n.target.files!==undefined?n.target.files[0]:n.target.value?{name:n.target.value.replace(/^.+\\/,"")}:null,!i){this.clear();return}if(this.$hidden.val(""),this.$hidden.attr("name",""),this.$input.attr("name",this.name),this.type==="image"&&this.$preview.length>0&&(typeof i.type!="undefined"?i.type.match("image.*"):i.name.match(/\.(gif|png|jpe?g)$/i))&&typeof FileReader!="undefined"){var u=new FileReader,r=this.$preview,f=this.$element;u.onload=function(n){r.html('<img src="'+n.target.result+'" '+(r.css("max-height")!="none"?'style="max-height: '+r.css("max-height")+';"':"")+" />");f.addClass("fileupload-exists").removeClass("fileupload-new")};u.readAsDataURL(i)}else this.$preview.text(i.name),this.$element.addClass("fileupload-exists").removeClass("fileupload-new")}},clear:function(n){if(this.$hidden.val(""),this.$hidden.attr("name",this.name),this.$input.attr("name",""),navigator.userAgent.match(/msie/i)){var t=this.$input.clone(!0);this.$input.after(t);this.$input.remove();this.$input=t}else this.$input.val("");this.$preview.html("");this.$element.addClass("fileupload-new").removeClass("fileupload-exists");n&&(this.$input.trigger("change",["clear"]),n.preventDefault())},reset:function(){this.clear();this.$hidden.val(this.original.hiddenVal);this.$preview.html(this.original.preview);this.original.exists?this.$element.addClass("fileupload-exists").removeClass("fileupload-new"):this.$element.addClass("fileupload-new").removeClass("fileupload-exists")},trigger:function(n){this.$input.trigger("click");n.preventDefault()}};n.fn.fileupload=function(i){return this.each(function(){var u=n(this),r=u.data("fileupload");r||u.data("fileupload",r=new t(this,i));typeof i=="string"&&r[i]()})};n.fn.fileupload.Constructor=t;n(document).on("click.fileupload.data-api",'[data-provides="fileupload"]',function(t){var i=n(this),r;i.data("fileupload")||(i.fileupload(i.data()),r=n(t.target).closest('[data-dismiss="fileupload"],[data-trigger="fileupload"]'),r.length>0&&(r.trigger("click.fileupload"),t.preventDefault()))})}(window.jQuery)