function ResultTable(b){var n=function(r,j,s,t){if(t){r.innerHTML=t+"%"}};var h=function(r,j,s,t){if(t){r.innerHTML=smush.prettysize(t)}};var f=function(t,s,u,v){var r=v;var j=r;if(r&&(r.indexOf("http://")===0||r.indexOf("https://")===0)){j=smush.getHref(r)}t.innerHTML=j};var c=[{key:"name",label:"Image",formatter:f,sortable:true,resizeable:true},{key:"dest_size",label:"Result size",formatter:h,sortable:true},{key:"savings",label:"Savings",formatter:h,sortable:true},{key:"percent",label:"% Savings",formatter:n,sortable:true},{key:"status",label:"Status",sortable:true,resizable:true}];var d={};var k=0;if(b&&b.length>0){for(var i=0;i<b.length;i++){d[b[i].id]=i}k=i}var m=new YAHOO.util.DataSource(b);m.responseType=YAHOO.util.DataSource.TYPE_JSARRAY;m.responseSchema={fields:["name","dest_size","savings","percent","status"]};var l=new YAHOO.widget.DataTable("results-table",c,m,{caption:"Smushed Images"});function a(j){d[j.id]=k;l.addRow(j,k);++k}function q(r){for(var j=0;j<r.length;j++){d[r[j].id]=j}l.addRows(r);k+=r.length}function e(r){if(r.id===undefined){l.addRow(r);return}var j=d[r.id];if(j!=undefined){if(!r.hasOwnProperty("name")){record=l.getRecord(j);r.name=record.getData("name")}l.updateRow(j,r)}}function g(){l.deleteRows(0,k)}function p(){l.destroy()}function o(u,j){var t=d[u];var r=l.getRecord(t);var s=l.getColumn(j);return l.getTdEl({record:r,column:s})}return{addRow:a,addRows:q,updateRow:e,deleteAllRows:g,getTdEl:o,destory:p}}function Totals(){var c=[];var e=0;var d=0;function b(g){c.push(g);var f=parseInt(g.dest_size,10);var h=parseInt(g.src_size,10);if(!isNaN(h)){d+=h}if(!isNaN(f)&&f!==-1&&!isNaN(h)){e+=(h-f)}}function a(){var f=100*e/d;if(isNaN(f)){f=0}f=f.toFixed(2);return{bytes:e,percent:f}}return{add:b,getSavings:a}}var smush={last_id:0,ws_location:"ws.php",totals_data:new Totals(),total_src:0,total_savings:0,smusher_task:null,smusher_subtask:"",paste_id:0,smushed_images:[],result_table:null,getTable2:function(){if(!this.result_table){this.result_table=new ResultTable()}return this.result_table},allDone:function(i,f){var d=YAHOO.lang.JSON.parse(i.data);var a=i.id?i.id:d.id;var k;k=d.dest?d.dest:d.src;var j=smush.getTable2();if(d.error){j.updateRow({id:a,status:d.error})}else{var l=d.dest_size;var g=d.src_size-d.dest_size;var h=d.percent;j.updateRow({id:a,name:k,dest_size:l,savings:g,percent:h});this.smushed_images.push(d.dest)}if(k&&(k.indexOf("http://")===0||k.indexOf("https://")===0)){var b=j.getTdEl(a,"name");if(b){var c=new Image();c.onload=function(e){return function(){var o=180;var n=e.width;var p=e.height;var m="";if(n>o&&p>o){if(n>p){m=0}else{m=1}}else{if(n>o){m=0}else{if(p>o){m=1}}}m=['width="'+o+'"','height="'+o+'"'][m];var q=new YAHOO.widget.Tooltip("tooltip"+a,{context:b,text:'<img style="padding: 10px" src="'+e.src+'" '+m+" /><br  />"+n+" x "+p,width:200})}}(c);c.src=k}}smush.totals_data.add(d);if(!f){smush.updateTotals()}},updateTotals:function(){if(smush.totals_data){var d=smush.totals_data.getSavings();if(!smush.totalsEl){var c=document.getElementById("totals");if(!c){smush.addResultsTab();c=document.getElementById("totals")}smush.totalsEl=c}if(!smush.downloadBtnEl){smush.downloadBtnEl=document.getElementById("ctxBtnArea")}smush.tabview.set("activeIndex",3);smush.tabChange();var e=smush.prettysize(d.bytes);var b;if(d.bytes>0){var a="Smushed <strong>%percent%%</strong> or <strong>%size%</strong> from the size of your image(s).  How did we do it? See the table below for more details.";b=a.replace(/%percent%/,d.percent).replace(/%size%/,e);if(smush.downloadBtnEl&&smush.downloadBtnEl.style.display!=="block"){smush.downloadBtnEl.style.display="block"}}else{b="Smush.it did not find any saving of your image(s).";if(smush.downloadBtnEl&&smush.downloadBtnEl.style.display!=="none"){smush.downloadBtnEl.style.display="none"}}smush.totalsEl.innerHTML=b}},addResultsTab:function(){var a=smush.tabview.get("tabs");var c=smush.tabview.getTab(a.length-1);c.set("content",smush.getResultsContent());var b=document.getElementById("results-li");b.style.display="block";return c},getHref:function(e){var b=e.split("?");var g=b[0].split("/");var d=g[g.length-1];if(d.length===0&&g.length>1){d=g[g.length-2]}var c=decodeURIComponent(g[g.length-1]);var h=c.split("/");var a=h.length;if(a>0){if(h[a-1].length>0){d=h[a-1]}else{if(a>1){d=h[a-2]}}}var f='<a href="'+e+'" target="_blank">'+d+"</a>";return f},submitPasteForm:function(){var g=document.getElementById("img").value;if(!g){alert("Please paste or type some image URLs");return false}g=g.split("\n");var e=[];var f="",b="";for(var c=0;c<g.length;c++){if(!g[c]){continue}f="paste"+smush.paste_id++;b=smush.ws_location+"?img="+encodeURIComponent(g[c])+"&task="+smush.smusher_task+"&id="+f;YAHOO.util.Connect.asyncRequest("GET",b,{success:smush.xhrCallback});var a=g[c];e.push({id:f,name:a,dest_size:null,savings:null,percent:null,status:"Smushing..."})}var d=smush.getTable2();d.addRows(e);return false},xhrCallback:function(a){smush.allDone({data:a.responseText})},prettysize:function(a){a=parseInt(a,10);if(a<1024){return a+" bytes"}else{a=a/1024;a=a.toFixed(2);return a+" KB"}},zipFailed:function(a){alert(a.responseText)},zipSuccess:function(b){var a=YAHOO.lang.JSON.parse(b.responseText);if(a.url){window.location.replace(a.url)}},getZipDownload:function(f){if(smush.smushed_images.length>0){var a="";for(var e=0;e<smush.smushed_images.length;e++){var c=smush.smushed_images[e];c=c.replace(/\+/g,"%2B");a+="list["+e+"]="+escape(c)+"&"}var b=(smush.smusher_task+"-"+encodeURIComponent(smush.smusher_subtask)).replace(/%msg%/,f);var d="zip.php?task="+b;if(smush.keep_dir&&smush.keep_dir==true){d+="&dir=true"}YAHOO.util.Connect.asyncRequest("POST",d,{failure:smush.zipFailed,success:smush.zipSuccess},a)}},updateKeepDir:function(a){smush.keep_dir=a.checked},getResultsContent:function(c){var a="javascript:smush.getZipDownload("+c+")";var b='<div id="results"><span class="x1"><span class="x1a"></span></span><span class="x2"><span class="x2a"></span></span><span class="lftCont"><p class="intro" id="totals"></p><div id="ctxBtnArea"><span id="zipBtn" class="actionButton yui-button yui-link-button"><span class="first-child"><a id="zipdownload" href="javascript:smush.getZipDownload('+c+')">Download Smushed Images</a></span></span><br/><input type="checkbox" name="keep_dir" onclick="smush.updateKeepDir(this)"/><label><span class="cb-label">Keep directory structure in zip file</span></label></div></span></div>';YAHOO.util.Event.onContentReady("ctxBtnArea",function(){var d=new YAHOO.widget.Button("zipBtn")});return b.replace(/%task%/,this.smusher_task+"-"+encodeURIComponent(this.smusher_subtask)).replace(/%msg%/,c)},tabChange:function(b){var c=YAHOO.util.Dom;var a=c.get("upload-container");if(c.getStyle(a,"top")!=="auto"){c.setStyle(a,"top","auto");c.setStyle(a,"left","auto");c.setStyle(a,"width","1px");c.setStyle(a,"height","1px")}if(c.hasClass(document.body,"toggle")){c.replaceClass(document.body,"toggle","shmoggle")}else{c.replaceClass(document.body,"shmoggle","toggle")}}};YAHOO.util.Event.onDOMReady(function(){var b=YAHOO.util.Dom.getRegion("selectAndSmushBtn");var a=YAHOO.util.Dom.get("uploaderOverlay");YAHOO.util.Dom.setStyle(a,"width",b.right-b.left+"px");YAHOO.util.Dom.setStyle(a,"height",b.bottom-b.top+"px")});var uploader=(function(){var i=2;YAHOO.widget.Uploader.SWFURL=url_prefix+"uploader.swf";var e=new YAHOO.widget.Uploader("uploaderOverlay");if(e._swf===null){var a=document.getElementById("uploader-flash");if(a){a.parentNode.removeChild(a);a=document.getElementById("uploader-flash-tab");a.parentNode.removeChild(a)}return null}else{var a=document.getElementById("uploader-basic");if(a){a.parentNode.removeChild(a);a=document.getElementById("uploader-basic-tab");a.parentNode.removeChild(a)}}e.addListener("contentReady",j);e.addListener("fileSelect",q);e.addListener("uploadStart",p);e.addListener("uploadProgress",l);e.addListener("uploadCancel",n);e.addListener("uploadComplete",o);e.addListener("uploadCompleteData",b);e.addListener("uploadError",g);e.addListener("rollOver",m);e.addListener("rollOut",d);e.addListener("click",k);var r;var h=0;var c=0;function m(){YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get("selectLink"),"color","#FFFFFF");YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get("selectLink"),"background-color","#000000")}function d(){YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get("selectLink"),"color","#0000CC");YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get("selectLink"),"background-color","#FFFFFF")}function k(){}function j(){e.setAllowLogging(true);e.setAllowMultipleFiles(true);var t=new Array({description:"Images",extensions:"*.jpg;*.png;*.gif"},{description:"Videos",extensions:"*.avi;*.mov;*.mpg"});e.setFileFilters(t)}function s(){if(r!=null){var t=url_prefix+smush.ws_location;for(var u in r){if(r.hasOwnProperty(u)){if(document.getElementById(u)){continue}c++;e.upload(u,t,"post",{task:smush.smusher_task,id:u},"files")}}}else{alert("Please select file before uploading.")}}function q(t){if("fileList" in t&&t.fileList!=null){r=t.fileList;s()}}function f(t){var v=0;this.fileIdHash={};this.dataArr=[];for(var w in t){var x=t[w];x.progress="<div style='height:5px;width:100px;background-color:#CCC;'></div>";dataArr.unshift(x)}for(var u=0;u<dataArr.length;u++){this.fileIdHash[dataArr[u].id]=u}var y=[{key:"name",label:"File Name",sortable:false},{key:"size",label:"Size",sortable:false},{key:"progress",label:"Upload progress",sortable:false}];this.myDataSource=new YAHOO.util.DataSource(dataArr);this.myDataSource.responseType=YAHOO.util.DataSource.TYPE_JSARRAY;this.myDataSource.responseSchema={fields:["id","name","created","modified","type","size","progress"]};this.singleSelectDataTable=new YAHOO.widget.DataTable("dataTableContainer",y,this.myDataSource,{caption:"Files To Upload",selectionMode:"single"})}function p(u){var t="Uploading 0 of "+r[u.id].size+" bytes";var v=smush.getTable2();if(v){v.addRow({id:u.id,name:r[u.id].name,dest_size:null,savings:null,percent:null,status:t})}}function l(u){var v=smush.getTable2();var t="Uploading "+u.bytesLoaded+" of "+u.bytesTotal+" bytes";v.updateRow({id:u.id,status:t})}function o(t){var u=smush.getTable2();u.updateRow({id:t.id,status:"Upload complete, smushing..."})}function g(u){var v=smush.getTable2();var t="Upload error: "+u.status;v.updateRow({id:u.id,status:t})}function n(t){var u=smush.getTable2();u.updateRow({id:t.id,status:"Upload canceled"})}function b(u){var t=true;h++;if(h===c){t=false}smush.allDone(u,t)}return{upload:s}})();(function(){YAHOO.widget.Logger.enableBrowserConsole();if(document.getElementById("paste-form")){document.getElementById("paste-form").onsubmit=smush.submitPasteForm}smush.tabview=new YAHOO.widget.TabView("tosmush");smush.tabview.addListener("activeTabChange",smush.tabChange);smush.smusher_task=Math.random()*100000000000000000+new Date().getTime();btn1=new YAHOO.widget.Button("smushUrlBtn",{value:"smushUrlBtnvalue"});btn2=new YAHOO.widget.Button("selectAndSmushBtn")})();