var Studio={};Studio.FocusManager={handle:function(c){c=new Event(c);var a;var b=c.target;while(b&&!b.__noFocus){if(b.__ctrl&&b.__ctrl.focus){Studio.FocusManager.focusOn(b.__ctrl,a);a=b.__ctrl}b=b.parentNode}b||Studio.FocusManager.focusOn(window,a)},focusOn:function(b,a){if(a!=b.__focus){var c=b.__focus;while(c){if(c.blur){c.blur()}c=c.__focus}if(a&&a.focus){a.focus()}b.__focus=a}}};Studio.VideoPreview=new Class({initialize:function(a,b){this._data=a;this.view=new Element("div").addClass("videoPreview");this._preview=this.view.appendChild(new Element("div").addClass("preview").hide());this._thumbnail=this.view.appendChild(new Element("img").addClass("thumbnail"));if(b){this._thumbnail.addEvent("load",b)}this._thumbnail.src=this._data.thumb_url;this._thumbnail.addEvent("click",this.play.bind(this))},play:function(){this._thumbnail.hide();this._preview.show();player(this._preview,"100%","100%",{file:this._data.stream_url,image:this._data.thumb_url,controlbar:"none",extra:"autostart=true&type=video&screencolor=333333",nocache:"true"})},stop:function(){this._preview.innerHTML="";this._preview.hide();this._thumbnail.show()}});Studio.UserVideoName=new Class({Extends:Chrome.EditableText,initialize:function(b,a){this.parent(b);this._save_url=a},save:function(){var a=this.parent();if(a){new Request({method:"post",url:this._save_url}).send({data:{name:this.getValue()}})}return a}});Studio.StatusManager=new Class({initialize:function(){this._targets=[];this.bound={getStatus:this.getStatus.bind(this),processStatus:this.processStatus.bind(this)}},requestUpdate:function(a,b){this._targets.push({id:b,element:a})},getStatus:function(){this._getStatus({"for":this._targets.map(function(a){return a.id}).join(",")})},_getStatus:function(a){if(this._targets.length==0){return}new Request.JSON({method:"post",url:"./get-status/",onComplete:this.bound.processStatus}).send({data:a})},processStatus:function(a){targets=this._targets;this._targets=[];for(var c,b=0;c=targets[b];b++){if(a[c.id]){c.element.update(a[c.id])}}delete targets;setTimeout(this.bound.getStatus,5000)}});var Dashboard={};Dashboard.Manager=new Class({Extends:Studio.StatusManager,initialize:function(f,e){this.parent();this.view=$(document.body);this.view.addEvent("mousedown",Studio.FocusManager.handle);for(var d,c=0;d=f[c];c++){var b=$(d.profile_id||"projects");$(b.parentNode).show();var a=b.appendChild(new Element("div"));var g=new Dashboard.Video(a,d);g.setDelegate(this,"video");g.poke()}this._videos=this.view.getElements(".Video").map(function(h){return h.__ctrl});this._buildPalette();this.setVideoSize(e);this.checkIfEmpty();this.getStatus()},_buildPalette:function(){this.footer=$("footer");this._slider=new Chrome.Slider();this._slider.setDelegate(this,"slider");this.palette=this.footer.appendChild(new Element("div").addClass("sliderPalette"));this.palette.__noFocus=true;this.palette.appendChild(this._slider.view);window.addEvent("scroll",this.surfacePalette.bind(this));window.addEvent("resize",this.surfacePalette.bind(this))},surfacePalette:function(){var b=this.footer.getPosition().y;var a=window.getScroll().y+window.getSize().y;if(b>=a){this.palette.removeClass("absolute")}else{this.palette.addClass("absolute")}},setVideoSize:function(b,a){if(!a){b=this._slider.setValue(b)}this._videoWidth=120+360*b;this.refresh()},refresh:function(){var c=0;for(var b,a=0;b=this._videos[a];a++){b.view.style.clear="none";b.setSize(this._videoWidth);if(b.view.offsetLeft<=c){b.view.style.clear="left"}c=b.view.offsetLeft}this.surfacePalette()},checkIfEmpty:function(){if(this._videos.length<1){this.view.addClass("emptyDashboard")}},onSliderDrag:function(a,b){this.setVideoSize(b,true)},onSliderDragComplete:function(a,b){if(b){new Request({method:"post",url:"./save-size/"}).send({data:{value:a.getValue()}})}},onVideoRequestUpdate:function(b,a){this.requestUpdate(b,a)},onVideoDeleted:function(b){var a=b.view.parentNode;a.removeChild(b.view);this._videos.splice(this._videos.indexOf(b),1);if(!a.firstChild){a.parentNode.hide();this.checkIfEmpty()}this.refresh()}});Dashboard.Video=new Class({Implements:Platform.Controller,initialize:function(a,b){this.view=a;this.view.__ctrl=this;this._data=b;this._build()},_build:function(){this.view.addClass("Video");this.canvas=this.view.appendChild(new Element("div").addClass("canvas"));var a=this.view.appendChild(new Element("a",{href:this._data.absolute_url,html:this._data.name}).addClass("name"));this._name=new Studio.UserVideoName(a,this._data.update_url);this.view.appendChild(new Element("p",{html:["<span>"+this._data.template+"</span>","<span>"+this._data.created_at+"</span>"].join(" - ")}).addClass("details"));var b=this.view.appendChild(new Element("div").addClass("rmBtn"));b.addEvent("click",this.remove.bind(this))},poke:function(){if(this._data.profile_id){this._label="video";this._ratio=this._data.sample.vres/this._data.sample.hres;if(this._data.duration==0){this.makeBusy();this.fire("requestUpdate",this._data.id)}else{this.makeAvailable()}}else{this._label="video project";this._ratio=0.6;this.view.addClass("Project")}},focus:function(){},blur:function(){if(this.preview){this.preview.stop()}},refresh:function(){this.canvas.style.height=Math.floor(parseInt(this.canvas.getStyle("width"))*this._ratio)+"px"},setSize:function(a){this.view.style.width=a+"px";this.refresh()},remove:function(){var a=["Do you really want to delete the "+this._label+":<br/>",'<a href="'+this._data.absolute_url+'">'+this._name.getValue()+"</a> ?"].join("");new Platform.Confirm({message:a,confirmLabel:"Delete",onConfirm:this.doRemove.bind(this)})},doRemove:function(){this.view.style.visibility="hidden";new Request({method:"post",url:this._data.delete_url,onComplete:this.fire.bind(this,"deleted")}).send({data:{djs:1}})},makeBusy:function(){this.view.addClass("loading busy");this.canvas.innerHTML="";var b=this.canvas.appendChild(new Element("div").addClass("status"));var a=b.appendChild(new Element("div").addClass("pg"));this.pg=a.appendChild(new Element("div"));this.pg._fx=new Fx.Morph(this.pg,{unit:"%",duration:5000});this.state=b.appendChild(new Element("p").addClass("state"))},update:function(a){this.view.removeClass("loading");a=Platform.simpleStatus(a);if(a.available){this._data.duration=a.duration;this.makeAvailable()}else{if(a.error){this.view.addClass("error");this.state.innerHTML='<a href="'+this._data.absolute_url+'">'+a.state+"</a><br/>"+a.error}else{if(!this._started){this.pg.style.width=a.percent+"%";this._started=true}else{this.pg._fx.cancel();this.pg._fx.start({width:a.percent})}this.state.innerHTML=a.state+"...";this.fire("requestUpdate",this._data.id)}}},makeAvailable:function(){this.view.removeClass("busy");this.view.addClass("loading");this.canvas.innerHTML="";this.preview=new Studio.VideoPreview(this._data.sample,function(){this.view.removeClass("loading")}.bind(this));this.canvas.appendChild(this.preview.view);this.canvas.appendChild(new Element("p",{html:new Platform.Duration(this._data.duration).reduced()}).addClass("infos"))}});var Templates={};Templates.Manager=new Class({initialize:function(b,g,e){this.view=b;for(var f,d=0;f=g[d];d++){var a=b.appendChild(new Element("div"));var c=new Templates.Template(a,f,e)}$(document.body).addEvent("mousedown",Studio.FocusManager.handle);window.addEvent("resize",this.refresh.bind(this))},refresh:function(){var a=this.view.firstChild;while(a){if(a.__ctrl&&a.__ctrl.refresh){a.__ctrl.refresh()}a=a.nextSibling}}});Templates.Template=new Class({initialize:function(a,d,b){this.view=a.addClass("Template loading");this.view.__ctrl=this;this._data=d;this._ratio=b;this.preview=new Studio.VideoPreview(d.sample,function(){this.view.removeClass("loading")}.bind(this));this.view.appendChild(this.preview.view);this.preview.view.appendChild(new Element("div",{html:this._data.name}).addClass("name"));var c=this.view.appendChild(new Element("form",{method:"post",action:"."}));c.appendChild(new Element("input",{type:"hidden",name:"template_id",value:d.id}));c.appendChild(new Element("button",{type:"submit",html:"Select this theme"}).addClass("button"));this.view.appendChild(new Element("div",{html:this._data.description}).addClass("details"));this.refresh()},focus:function(){this.view.addClass("focus")},blur:function(){this.view.removeClass("focus");this.preview.stop()},refresh:function(){this.preview.view.style.height=Math.floor(parseInt(this.preview.view.getStyle("width"))*this._ratio)+"px"}});var ExportPage={};ExportPage.ExportForm=new Class({initialize:function(b){this.form=b;var a=this;this.options=b.getElements(".option");this.options.forEach(function(c){c.__input=c.getElement("input");c.getValue=function(){return c.__input.checked};c.setValue=function(d){c.__input.checked=d;a.refresh()}});this.total=b.getElement(".total .value");this.exportBtn=b.getElement("button");this.form.addEvent("click",this.refresh.bindWithEvent(this));this.refresh()},setTotal:function(a){this.total.innerHTML="$"+a.toFixed(2);if(a>0){this.exportBtn.innerHTML="Checkout with PayPal";this.form.removeClass("freeExport")}else{this.exportBtn.innerHTML="Export";this.form.addClass("freeExport")}},refresh:function(e){var d=0;if(e){var g=e.target;if(!Platform.Drag.exceptions[g.tagName]){while(g&&!g.__input){g=g.parentNode}if(g&&g.__input){g.__input.click()}}}for(var c,b=0;c=this.options[b];b++){var a=c.__input;var f=parseFloat(c.getAttribute("value"));if(a.name!="profile_id"&&d==0&&f){a.checked=false}if(a.checked){c.addClass("selected");d+=f}else{c.removeClass("selected")}}this.setTotal(d)}});ExportPage.ServiceOption=new Class({initialize:function(a){this.view=a;this.user=this.view.getElement(".serviceUser .name");this.view.getElement(".serviceUser .logout").addEvent("click",this.logout.bind(this));this.view.__input.addEvent("click",this.onInputClicked.bindWithEvent(this))},onInputClicked:function(a){if(this.view.getValue()){this.view.setValue(false);this.connect()}},cancel:function(){this.view.setValue(false)}});ExportPage.YoutubeOption=new Class({Extends:ExportPage.ServiceOption,initialize:function(a,b){this.parent(a);this._serviceUrl=b;this.checkUser()},connect:function(){if(!this._user){var b=Platform.Callbacks.build(function(){if(this._connectWindow){this._connectWindow.close()}this.finalize();this.checkUser()}.bind(this));var a=this._serviceUrl+"?method=connect&next="+b;this._connectWindow=window.open(a,"youtube","width=1024,height=600")}else{this.finalize()}},finalize:function(){this.view.setValue(true)},checkUser:function(){new Request.JSON({method:"get",url:this._serviceUrl,onComplete:function(a){a?this.onConnected(a):this.onNotConnected()}.bind(this)}).send({data:{method:"getUser"}})},onConnected:function(a){this._user=a;this.user.href="http://www.youtube.com/user/"+a.username;this.user.innerHTML=a.username;this.view.addClass("connected")},onNotConnected:function(){this._user=undefined;this.view.removeClass("connected");this.cancel()},logout:function(){this.onNotConnected();this.connect();new Request({method:"get",url:this._serviceUrl}).send({data:{method:"disconnect"}})}});ExportPage.FacebookOption=new Class({Extends:ExportPage.ServiceOption,_fb_perms:"video_upload",initialize:function(a,b){this.parent(a);this.token=this.view.appendChild(new Element("input",{type:"hidden",name:"fb_token"}));this._fbApiKey=b;FB_RequireFeatures(["Connect","Api"],this.fbInit.bind(this))},fbInit:function(){FB.init(this._fbApiKey,"/m/facebook/xd_receiver.html",{ifUserConnected:this.onConnected.bind(this),ifUserNotConnected:this.onNotConnected.bind(this)})},connect:function(){FB.Connect.requireSession(this.getPerms.bind(this))},getPerms:function(){FB.Facebook.apiClient.users_hasAppPermission(this._fb_perms,function(a){if(a){this.finalize()}else{FB.Connect.showPermissionDialog(this._fb_perms,function(b){if(b){this.finalize()}}.bind(this))}}.bind(this))},finalize:function(){this.token.value=this.getSession().session_key;this.view.setValue(true)},onConnected:function(a){FB.Facebook.apiClient.users_getInfo(this.getSession().uid,"first_name,last_name,profile_url",function(c){var b=c[0];this.user.href=b.profile_url;this.user.innerHTML=b.first_name+" "+b.last_name;this.view.addClass("connected")}.bind(this))},onNotConnected:function(){this.view.removeClass("connected");this.cancel()},logout:function(){FB.Connect.logout(this.connect.bind(this));this.cancel()},getSession:function(){return FB.Facebook.apiClient.get_session()}});var VideoPage={};VideoPage.confirmDelete=function(a){new Platform.Confirm({message:"Do you really want to delete this video ?",confirmLabel:"Delete",onConfirm:function(){Platform.doPOST(a.href)}});return false};VideoPage.Overlay=new Class({Extends:Platform.Alert,_cssClass:"Thanks",initialize:function(a){this.parent(a);this.overlay.addEvent("click",this.close.bind(this))},_buildControls:function(){}});VideoPage.handlePurchase=function(){var c=window.document.location.hash;if(c){var b=$("render_"+c.slice(1));if(b){var a=$(window.document.body);a.addClass("hidden");var d=new VideoPage.Overlay({message:$("ThanksMessage").innerHTML,onClose:function(){b._fx.start({top:0,left:0});b.style.zIndex="";a.removeClass("hidden");window.document.location.hash=""}});var f=d.container.getElement(".placeholder");f.style.width=b.offsetWidth+"px";f.style.height=b.offsetHeight+"px";var g=f.getPosition();var e=b.getPosition();b.style.position="relative";b.style.left=g.x-e.x+"px";b.style.top=g.y-e.y+"px";b.style.zIndex=1;b._fx=new Fx.Morph(b);return d}else{window.document.location.hash=""}}};VideoPage.Notifier=new Class({initialize:function(a,b,c){this.view=a;this.manager=b;this._export_id=c;this.manager.requestUpdate(this,this._export_id)},getUploadTypeLabel:function(a){return{youtube:"YouTube",facebook:"Facebook"}[a]},buildNotification:function(d,c,a){var b=new Element("div",{html:c}).addClass("notification");if(a){b.addClass(a)}this.view.appendChild(b);this["notification_"+d]=b},update:function(a){var f=a["info-uploadCount"];while(--f>0){var e=a["uploading-"+f+"-id"];if(e&&!this["notification_"+e]){var c=a["available-"+f+"-url"];if(c){var b=this.getUploadTypeLabel(a["available-"+f+"-type"]);this.buildNotification(e,["<p>Your video has been successfully uploaded on "+b+":</p>",'<a href="'+c+'" target="_blank">'+c+"</a>"].join(""))}else{if(a["uploading-"+f+"-error"]){var b=this.getUploadTypeLabel(a["uploading-"+f+"-type"]);this.buildNotification(e,"<p>Bad luck: The "+b+" upload has failed!</p>","error")}}}}var d=Platform.simpleStatus(a);if(!d.complete){this.manager.requestUpdate(this,this._export_id)}}});VideoPage.Download=new Class({initialize:function(a,b){this.manager=a;this._data=b;this.view=new Element("div",{id:"render_"+b.render_id});this.icon=this.view.appendChild(new Element("a").addClass("icon"));this.desc=this.view.appendChild(new Element("div").addClass("desc"));this.poke()},poke:function(){if(this._data.duration==0){this.manager.requestUpdate(this,this._data.render_id);this.makeBusy()}else{this.makeAvailable()}},update:function(a){a=Platform.simpleStatus(a);if(a.available){this._data.duration=a.duration;this._data.filesize=a.filesize;this.makeAvailable()}else{if(a.error){this.statusBar.innerHTML=a.state}else{this.statusBar.innerHTML=['<span class="percent">'+a.percent+"%</span>",'<span class="state">'+a.state+"...</span>"].join(" ");this.manager.requestUpdate(this,this._data.render_id)}}},makeBusy:function(){this.view.className="download busy";this.desc.innerHTML="<h4>"+this._data.name+"</h4>";this.statusBar=this.desc.appendChild(new Element("p",{html:"..."}))},makeAvailable:function(){this.view.className="download available";this.icon.href=this._data.download_url;this.desc.innerHTML=['<h4><a href="'+this._data.download_url+'">'+this._data.name+"</a></h4>","<p>"+this._data.hres+"x"+this._data.vres+"</p>",'<p><span class="len">'+new Platform.Duration(this._data.duration).detailled()+"</span>",'<span class="size"> - '+new Platform.Filesize(this._data.filesize).detailled()+"</span></p>"].join("")}});VideoPage.Viewer=new Class({Extends:VideoPage.Download,initialize:function(a,b,c){this.manager=b;this.view=a;this._data=c;this.poke()},update:function(a){this.view.removeClass("loading");a=Platform.simpleStatus(a);if(a.available){this.makeAvailable()}else{if(a.error){this.state.innerHTML=a.state}else{if(!this._started){this.pg.style.width=a.percent+"%";this._started=true}else{this.pg._fx.cancel();this.pg._fx.start({width:a.percent})}this.state.innerHTML=a.state+"...";this.manager.requestUpdate(this,this._data.render_id)}}},makeBusy:function(){this.view.addClass("busy loading");var c=this.view.appendChild(new Element("div").addClass("placeholder"));var b=c.appendChild(new Element("div").addClass("status"));var a=b.appendChild(new Element("div").addClass("pg"));this.pg=a.appendChild(new Element("div"));this.pg._fx=new Fx.Morph(this.pg,{unit:"%",duration:5000});this.state=b.appendChild(new Element("div").addClass("state"))},makeAvailable:function(){this.view.removeClass("busy");player(this.view,this._data.hres,this._data.vres,{file:this._data.stream_url,image:this._data.thumb_url,extra:"type=video&backcolor=AAAAAA&frontcolor=000000"})}});var Archives={};Archives.confirmDelete=function(b){var d=$("archive_"+b);var e=d.getElement("a.delete").href;var c=d.getElement("a.name");function a(){d.parentNode.removeChild(d)}new Platform.Confirm({message:"Do you really want to delete the video:<br/>"+Element.source(c)+" ?",confirmLabel:"Delete",onConfirm:function(){d.style.visibility="hidden";new Request({method:"post",url:e,onComplete:a}).send({data:{djs:1}})}});return false};