/*! Cover Photo - v0.1.0 - 2012-10-19 * https://github.com/sandropadin/coverphoto * Copyright (c) 2012 Sandro Padin; Licensed MIT */ this.CoverPhotoTemplates=this.CoverPhotoTemplates||{},this.CoverPhotoTemplates["src/templates/actions.jst"]=function(obj){var __p="",print=function(){__p+=Array.prototype.join.call(arguments,"")};with(obj||{})__p+='
\n \n \n
';return __p},this.CoverPhotoTemplates["src/templates/container.jst"]=function(obj){var __p="",print=function(){__p+=Array.prototype.join.call(arguments,"")};with(obj||{})__p+="
\n \n
";return __p},this.CoverPhotoTemplates["src/templates/form.jst"]=function(obj){var __p="",print=function(){__p+=Array.prototype.join.call(arguments,"")};with(obj||{})__p+='
\n \n \n
';return __p},this.CoverPhotoTemplates["src/templates/image.jst"]=function(obj){var __p="",print=function(){__p+=Array.prototype.join.call(arguments,"")};with(obj||{})__p+='
\n \n
';return __p},function(){var e=function(e,t){return function(){return e.apply(t,arguments)}},t=[].slice;(function(n){var r;return r=function(){function r(t){this.el=t.el,this.options=t.options,this.handleFileSelected=e(this.handleFileSelected,this),this.endReposition=e(this.endReposition,this),this.startReposition=e(this.startReposition,this),this.cancelEdit=e(this.cancelEdit,this),this.saveEdit=e(this.saveEdit,this),this.handleCoverPhotoUpdated=e(this.handleCoverPhotoUpdated,this),this.startUpload=e(this.startUpload,this),this.hideEditMenu=e(this.hideEditMenu,this),this.showEditMenu=e(this.showEditMenu,this),this.hideActionsMenu=e(this.hideActionsMenu,this),this.showActionsMenu=e(this.showActionsMenu,this),this.showActions=e(this.showActions,this),this.hideActions=e(this.hideActions,this),this.options=n.extend(!0,r.defaults,this.options),this.templates=CoverPhotoTemplates,this.setEl(),this.render(),this.elements(),this.bindEvents()}return r.defaults={editable:!1,post:{url:null,field:"coverphoto[cropped]"}},r.prototype.render=function(){return this.addForm(),this.options.editable&&this.addActions(),this.options.currentImage&&this.addImage(this.options.currentImage),n(".actions",this.$el).css("top",this.$el.height()-35),n("canvas",this.$el).attr("width",this.$el.width()),n("canvas",this.$el).attr("height",this.$el.height())},r.prototype.on=function(){var e,r,i,s;e=1<=arguments.length?t.call(arguments,0):[];if(e.length===3)return r=e[0],s=e[1],i=e[2],n(this.$el).delegate(s,r,i);if(e.length===2)return r=e[0],i=e[1],n(this.$el).bind(r,i)},r.prototype.bindEvents=function(){return this.on("coverPhotoUpdated",this.handleCoverPhotoUpdated),this.on("mouseleave",this.hideActions),this.on("mouseenter",this.showActions),this.on("mouseleave",this.actionsContainer.selector,this.hideActionsMenu),this.on("change",this.fileInput.selector,this.handleFileSelected),this.on("click",this.openMenuButton.selector,this.showActionsMenu),this.on("click",this.uploadButton.selector,this.startUpload),this.on("click",this.repositionButton.selector,this.startReposition),this.on("click",this.saveEditButton.selector,this.saveEdit),this.on("click",this.cancelEditButton.selector,this.cancelEdit)},r.prototype.setEl=function(){var e;return e=this.templates["src/templates/container.jst"](),this.$el=n(e).appendTo(n(this.el))},r.prototype.elements=function(){return this.actionsContainer=n(".actions",this.$el),this.actions=n(".chooser",this.$el),this.actionsMenu=n(".chooser .sub-menu",this.$el),this.editMenu=n(".edit",this.$el),this.cancelEditButton=n(".edit .cancel a",this.$el),this.saveEditButton=n(".edit .save a",this.$el),this.openMenuButton=n(".chooser .open-menu a",this.$el),this.uploadButton=n(".chooser .upload a",this.$el),this.repositionButton=n(".chooser .reposition a",this.$el),this.form=n("form",this.$el),this.fileInput=n("input[name='coverphoto[original]']",this.$el),this.hiddenImageInput=n("input[name='coverphoto[cropped]']",this.$el),this.canvas=n("canvas",this.$el)},r.prototype.addForm=function(){return this.$el.append(this.templates["src/templates/form.jst"](this.options))},r.prototype.addActions=function(){return this.$el.append(this.templates["src/templates/actions.jst"](this.options))},r.prototype.addImage=function(e){var t;return t=this.$el.width(),this.originalImage=n(".coverphoto-photo-container img",this.$el).attr("src"),n(".coverphoto-photo-container",this.$el).remove(),this.$el.append(this.templates["src/templates/image.jst"]({imageData:e,imageWidth:t}))},r.prototype.hideActions=function(){return this.actions.fadeOut()},r.prototype.showActions=function(){if(!this.editMenu.is(":visible"))return this.actions.fadeIn()},r.prototype.showActionsMenu=function(){return this.actionsMenu.show(),!1},r.prototype.hideActionsMenu=function(e){return this.actionsMenu.hide()},r.prototype.showEditMenu=function(){return this.editMenu.show(),this.actions.hide()},r.prototype.hideEditMenu=function(){return this.editMenu.hide(),this.actions.show()},r.prototype.startUpload=function(){return this.fileInput.click(),!1},r.prototype.resetFileInputField=function(){var e;return e=this.fileInput.parent(),this.fileInput.remove(),n('').appendTo(e),this.fileInput=n("input[name='coverphoto[original]']",this.$el)},r.prototype.handleCoverPhotoUpdated=function(e,t){if(this.options.post.url!=null)return this.form.submit()},r.prototype.saveEdit=function(){var e;return e=this.gatherImageData(),this.resetFileInputField(),this.hideEditMenu(),this.endReposition(),this.$el.trigger("coverPhotoUpdated",e),!1},r.prototype.cancelEdit=function(){return this.originalImage&&this.addImage(this.originalImage),this.hideEditMenu(),this.endReposition(),!1},r.prototype.startReposition=function(e){var t,r,i=this;return e==null&&(e=null),t=n(".coverphoto-photo-container img",this.$el),r=function(){var e,n;return e=t.parents(".coverphoto-container").offset(),n=-(t.height()-t.parent().height()-e.top),t.draggable({axis:"y",containment:[0,n,0,e.top]})},t.height()>0?r():t.load(r),this.showEditMenu(),e!=null&&this.hideActionsMenu(),!1},r.prototype.endReposition=function(){var e;return e=n(".coverphoto-photo-container img",this.$el),e.draggable("destroy")},r.prototype.handleFileSelected=function(e){var t,n,r=this;return t=e.target.files[0],n=new FileReader,n.onload=function(e){return r.addImage(e.target.result),r.startReposition()},n.readAsDataURL(t)},r.prototype.gatherImageData=function(){var e,t,r,i,s;return i=n(".coverphoto-photo-container img",this.$el),e=this.canvas[0].getContext("2d"),s=i.width(),r=i.height(),e.drawImage(i[0],0,i.position().top,s,r),t=this.canvas[0].toDataURL("image/png"),this.hiddenImageInput.val(t),t},r}(),n.fn.CoverPhoto=function(e){return this.each(function(){return new r({el:this,options:e})})}})($)}.call(this);