Swiff.Uploader=new Class({Extends:Swiff,Implements:Events,options:{path:"Swiff.Uploader.swf",target:null,zIndex:9999,height:30,width:100,callBacks:null,params:{wMode:"opaque",menu:"false",allowScriptAccess:"always"},typeFilter:null,multiple:true,queued:true,verbose:false,url:null,method:null,data:null,mergeData:true,fieldName:null,fileSizeMin:1,fileSizeMax:null,allowDuplicates:false,timeLimit:(Browser.Platform.linux)?0:30,buttonImage:null,policyFile:null,fileListMax:0,fileListSizeMax:0,instantStart:false,appendCookieData:false,fileClass:null},initialize:function(options){this.addEvent("load",this.initializeSwiff,true).addEvent("select",this.processFiles,true).addEvent("complete",this.update,true).addEvent("fileRemove",function(file){this.fileList.erase(file)}.bind(this),true);this.setOptions(options);if(this.options.callBacks){Hash.each(this.options.callBacks,function(fn,name){this.addEvent(name,fn)},this)}this.options.callBacks={fireCallback:this.fireCallback.bind(this)};var path=this.options.path;if(!path.contains("?")){path+="?noCache="+$time()}this.options.container=this.box=new Element("span",{"class":"swiff-uploader-box"}).inject($(this.options.container)||document.body);this.target=$(this.options.target);if(this.target){var scroll=window.getScroll();this.box.setStyles({position:"absolute",visibility:"visible",zIndex:this.options.zIndex,overflow:"hidden",height:1,width:1,top:scroll.y,left:scroll.x});this.parent(path,{params:{wMode:"transparent"},height:"100%",width:"100%"});this.target.addEvent("mouseenter",this.reposition.bind(this,[]));this.addEvents({buttonEnter:this.targetRelay.bind(this,["mouseenter"]),buttonLeave:this.targetRelay.bind(this,["mouseleave"]),buttonDown:this.targetRelay.bind(this,["mousedown"]),buttonDisable:this.targetRelay.bind(this,["disable"])});this.reposition();window.addEvent("resize",this.reposition.bind(this,[]))}else{this.parent(path)}this.inject(this.box);this.fileList=[];this.size=this.uploading=this.bytesLoaded=this.percentLoaded=0;if(Browser.Plugins.Flash.version<9){this.fireEvent("fail",["flash"])}else{this.verifyLoad.delay(1000,this)}},verifyLoad:function(){if(this.loaded){return }if(!this.object.parentNode){this.fireEvent("fail",["disabled"])}else{if(this.object.style.display=="none"){this.fireEvent("fail",["hidden"])}else{if(!this.object.offsetWidth){this.fireEvent("fail",["empty"])}}}},fireCallback:function(name,args){if(name.substr(0,4)=="file"){if(args.length>1){this.update(args[1])}var data=args[0];var file=this.findFile(data.id);this.fireEvent(name,file||data,5);if(file){var fire=name.replace(/^file([A-Z])/,function($0,$1){return $1.toLowerCase()});file.update(data).fireEvent(fire,[data],10)}}else{this.fireEvent(name,args,5)}},update:function(data){$extend(this,data);this.fireEvent("queue",[this],10);return this},findFile:function(id){for(var i=0;i<this.fileList.length;i++){if(this.fileList[i].id==id){return this.fileList[i]}}return null},initializeSwiff:function(){this.remote("initialize",{width:this.options.width,height:this.options.height,typeFilter:this.options.typeFilter,multiple:this.options.multiple,queued:this.options.queued,url:this.options.url,method:this.options.method,data:this.options.data,mergeData:this.options.mergeData,fieldName:this.options.fieldName,verbose:this.options.verbose,fileSizeMin:this.options.fileSizeMin,fileSizeMax:this.options.fileSizeMax,allowDuplicates:this.options.allowDuplicates,timeLimit:this.options.timeLimit,buttonImage:this.options.buttonImage,policyFile:this.options.policyFile});this.loaded=true;this.appendCookieData()},targetRelay:function(name){if(this.target){this.target.fireEvent(name)}},reposition:function(coords){coords=coords||(this.target&&this.target.offsetHeight)?this.target.getCoordinates(this.box.getOffsetParent()):{top:window.getScrollTop(),left:0,width:40,height:40};this.box.setStyles(coords);this.fireEvent("reposition",[coords,this.box,this.target])},setOptions:function(options){if(options){if(options.url){options.url=Swiff.Uploader.qualifyPath(options.url)}if(options.buttonImage){options.buttonImage=Swiff.Uploader.qualifyPath(options.buttonImage)}this.parent(options);if(this.loaded){this.remote("setOptions",options)}}return this},setEnabled:function(status){this.remote("setEnabled",status)},start:function(){this.fireEvent("beforeStart");this.remote("start")},stop:function(){this.fireEvent("beforeStop");this.remote("stop")},remove:function(){this.fireEvent("beforeRemove");this.remote("remove")},fileStart:function(file){this.remote("fileStart",file.id)},fileStop:function(file){this.remote("fileStop",file.id)},fileRemove:function(file){this.remote("fileRemove",file.id)},fileRequeue:function(file){this.remote("fileRequeue",file.id)},appendCookieData:function(){var append=this.options.appendCookieData;if(!append){return }var hash={};document.cookie.split(/;\s*/).each(function(cookie){cookie=cookie.split("=");if(cookie.length==2){hash[decodeURIComponent(cookie[0])]=decodeURIComponent(cookie[1])}});var data=this.options.data||{};if($type(append)=="string"){data[append]=hash}else{$extend(data,hash)}this.setOptions({data:data})},processFiles:function(successraw,failraw,queue){var cls=this.options.fileClass||Swiff.Uploader.File;var fail=[],success=[];if(successraw){successraw.each(function(data){var ret=new cls(this,data);if(!ret.validate()){ret.remove.delay(10,ret);fail.push(ret)}else{this.size+=data.size;this.fileList.push(ret);success.push(ret);ret.render()}},this);this.fireEvent("selectSuccess",[success],10)}if(failraw||fail.length){fail.extend((failraw)?failraw.map(function(data){return new cls(this,data)},this):[]).each(function(file){file.invalidate().render()});this.fireEvent("selectFail",[fail],10)}this.update(queue);if(this.options.instantStart&&success.length){this.start()}}});$extend(Swiff.Uploader,{STATUS_QUEUED:0,STATUS_RUNNING:1,STATUS_ERROR:2,STATUS_COMPLETE:3,STATUS_STOPPED:4,log:function(){if(window.console&&console.info){console.info.apply(console,arguments)}},unitLabels:{b:[{min:1,unit:"B"},{min:1024,unit:"kB"},{min:1048576,unit:"MB"},{min:1073741824,unit:"GB"}],s:[{min:1,unit:"s"},{min:60,unit:"m"},{min:3600,unit:"h"},{min:86400,unit:"d"}]},formatUnit:function(base,type,join){var labels=Swiff.Uploader.unitLabels[(type=="bps")?"b":type];var append=(type=="bps")?"/s":"";var i,l=labels.length,value;if(base<1){return"0 "+labels[0].unit+append}if(type=="s"){var units=[];for(i=l-1;i>=0;i--){value=Math.floor(base/labels[i].min);if(value){units.push(value+" "+labels[i].unit);base-=value*labels[i].min;if(!base){break}}}return(join===false)?units:units.join(join||", ")}for(i=l-1;i>=0;i--){value=labels[i].min;if(base>=value){break}}return(base/value).toFixed(1)+" "+labels[i].unit+append}});Swiff.Uploader.qualifyPath=(function(){var anchor;return function(path){(anchor||(anchor=new Element("a"))).href=path;return anchor.href}})();Swiff.Uploader.File=new Class({Implements:Events,initialize:function(base,data){this.base=base;this.update(data)},update:function(data){return $extend(this,data)},validate:function(){var options=this.base.options;if(options.fileListMax&&this.base.fileList.length>=options.fileListMax){this.validationError="fileListMax";return false}if(options.fileListSizeMax&&(this.base.size+this.size)>options.fileListSizeMax){this.validationError="fileListSizeMax";return false}return true},invalidate:function(){this.invalid=true;this.base.fireEvent("fileInvalid",this,10);return this.fireEvent("invalid",this,10)},render:function(){return this},setOptions:function(options){if(options){if(options.url){options.url=Swiff.Uploader.qualifyPath(options.url)}this.base.remote("fileSetOptions",this.id,options);this.options=$merge(this.options,options)}return this},start:function(){this.base.fileStart(this);return this},stop:function(){this.base.fileStop(this);return this},remove:function(){this.base.fileRemove(this);return this},requeue:function(){this.base.fileRequeue(this)}});var swf;var swfLoaded=false;var swfTweet=false;jQuery(window).load(function(){swf=new Swiff.Uploader({path:"/fancyupload/Swiff.Uploader.swf",url:jQuery("#upload-form").attr("action")+"?flash=1",verbose:false,queued:false,multiple:false,target:$("btnBrowse"),instantStart:false,typeFilter:null,fileSizeMax:100*1024*1024,onFail:function(reason){enableUploadButton()},onLoad:function(){swfLoaded=true;jQuery("#upload-flash-ui").show();jQuery("#upload-normal-ui").hide();jQuery("#upload-progress-image").hide();jQuery("#upload-progress-bg").show();jQuery("#upload-button").click(function(){swf.start();return false})},onSelectSuccess:function(files){jQuery("#txtFileName").val(files[0].name)},onSelectFail:function(files){alert("ERROR: Please select a file smaller than 100 MB.")},onStart:function(){hideUploadButtonShowProgress();this.setEnabled(false)},appendCookieData:false,onQueue:updateUploadProgress,onFileComplete:function(file){if(file.response.text.length!=5&&file.response.text.length!=6){alert("Your upload failed with error: "+file.response.text+". Please forward this information to team@intelco.com.br for assistance.")}else{document.getElementById("hidFileID").value=file.response.text;uploadDone()}file.remove()},onComplete:function(){}})});function enableUploadButton(){jQuery("#upload-normal-ui input").attr("disabled",false)}function updateUploadProgress(file,bytesLoaded,bytesTotal,complete){if(!swf.uploading){return }var percent=complete?100:Math.ceil(swf.percentLoaded);if(percent==100){var complete=true}var width=Math.ceil(jQuery("#upload-progress-bg").css("width").replace("px","")*(percent/100));jQuery("#upload-progress-fg").css("width",width+"px");var html='<div id="upload-percent">'+percent+"%</div>";if(!complete){html+='<div id="upload-megs">'+bytesToMegs(swf.bytesLoaded)+" MB / "+bytesToMegs(swf.size)+" MB</div>"}else{html+='<div id="upload-megs">Upload complete!</div>'}jQuery("#upload-progress-number").html(html);document.title=percent+"% uploaded"}function bytesToMegs(bytes){return Math.round(100*bytes/(1024*1024))/100}function uploadDone(){window.location="http://sharesend.com/info/"+jQuery("#hidFileID").val()+(swfTweet?"/tweet":"")}function hideUploadButtonShowProgress(){jQuery("#tweet-it").hide();document.getElementById("upload-button").style.display="none";document.getElementById("upload-progress").style.display="inline"}jQuery(document).ready(function(){jQuery("#tweet").submit(function(){var message=encodeURIComponent(jQuery("#tweet textarea").val());var string_to_append="twitter_t="+sharesend_twitter_at.t+"&twitter_ts="+sharesend_twitter_at.ts+"&twitter_m="+message;if(swfLoaded){swf.setOptions({url:swf.options.url+"&"+string_to_append});swfTweet=true;swf.start()}else{jQuery("#upload-form").attr("action",jQuery("#upload-form").attr("action")+"?"+string_to_append);jQuery("#upload-form").submit()}return false});jQuery("#upload-form").submit(function(){if(!jQuery("#upload-form :file").val()){alert("Please select a file.");return false}hideUploadButtonShowProgress()});jQuery("#tweet textarea").keyup(function(){var remaining=112-jQuery(this).val().length;jQuery("#tweet .counter span").html(remaining.toString())})});
