var uploader={init:function(){uploader.numFiles=0;uploader.cancelFlag=false;uploader.maxTotalPct=0.95;uploader.maxFakePct=0.25;uploader.maxSendPct=uploader.maxTotalPct-uploader.maxFakePct;uploader._isUploading=false;setVisibility($('photo_browse_table'),true);uploader.underlay=$('photo_browse_table');var flashVer=swfobject.getFlashPlayerVersion();if(flashVer.major<9||(flashVer.major==9&&flashVer.minor==(0)&&flashVer.release<=16)){$("albums").style.display="none";$('uploadPhotos').style.display="none";$("flashRequired").style.display="";setDisplay($('hasNoFlash'),!flashVer.major);setDisplay($('hasOldFlash'),flashVer.major);}
uploader.core=new SWFUpload({upload_url:"/photos/upload/",use_query_string:true,file_size_limit:"10240",file_types:"*.jpg;*.JPG;*.jpeg;*.JPEG;*.png;*.PNG;*.gif;*.GIF;*.bmp;*.BMP",file_types_description:"Images",file_upload_limit:"0",file_queue_limit:"100",file_post_name:"Filedata",file_queued_handler:uploader.fileQueued,file_queue_error_handler:uploader.fileQueueError,file_dialog_complete_handler:uploader.fileDialogComplete,upload_start_handler:uploader.uploadStart,upload_progress_handler:uploader.uploadProgress,upload_error_handler:uploader.uploadError,upload_success_handler:uploader.uploadSuccess,upload_complete_handler:uploader.uploadComplete,button_placeholder_id:"uploader_placeholder",button_width:500,button_height:100,button_window_mode:SWFUpload.WINDOW_MODE.TRANSPARENT,button_cursor:SWFUpload.CURSOR.HAND,flash_url:'/swf/swfupload.swf',prevent_swf_caching:Boolean(dojo.isIE),debug:false});var el=uploader.core.getMovieElement();el.onmouseover=uploader.mouseOver;el.onmouseout=uploader.mouseOut;setVisibility(el,false);},getStats:function(){try{return(uploader.core&&uploader.core.getStats())||{};}catch(ex){return{};}},startUpload:function(){uploader.cancelFlag=false;uploader._isUploading=true;setVisibility($('photo_browse_table'),false);setVisibility(this.core.getMovieElement(),false);uploader.core.startUpload();},cancelAll:function(){uploader.cancelFlag=true;uploader._isUploading=false;while(uploader.getStats().files_queued>0){uploader.core.cancelUpload();}},fakeServerProgress:function(updateInterval,divProg,pct,step){function doProgress(){if(divProg._done)
return;pct+=step;if(pct>uploader.maxTotalPct)
pct=uploader.maxTotalPct;uploader.setProgress(divProg,pct);if(pct<uploader.maxTotalPct)
window.setTimeout(doProgress,updateInterval);}
window.setTimeout(doProgress,updateInterval);},setProgress:function(divProg,pct){var right=divProg.offsetWidth*pct;var bottom=divProg.parentNode.offsetHeight;divProg.style.clip="rect(0px "+right+"px "+bottom+"px 0px)";},removeRemoveLink:function(fileId){setVisibility($("ulrem_"+fileId),false);},onRemoveClick:function(fileId){--uploader.numFiles;uploader.updateFileCount();var div=$("uldiv_"+fileId);var divParent=div.parentNode;divParent.appendChild(div);divParent.removeChild(div);uploader.core.cancelUpload(fileId);},makeSizeStr:function(size){if(size<1024)return size+" B";size/=1024;if(size<1024)return Math.round(size)+" KB";size/=1024;return heart.round(size,1)+" MB";},updateFileCount:function(){var fileCount=uploader.numFiles;$('file_count').innerHTML=i18n_plural(res.photo.photosSelected,fileCount);},isUploading:function(){return uploader._isUploading;},uploadStart:function(fileObj){var divProg=$('fileprog_'+fileObj.id);scrollIntoInnerView(divProg.offsetParent,$('photo_list'));return true;},uploadProgress:function(fileObj,curBytes,totalBytes){var divProg=$('fileprog_'+fileObj.id);var pct=(curBytes/totalBytes)*uploader.maxSendPct;uploader.setProgress(divProg,pct);if(curBytes==totalBytes){var bytesPerSecond=200000;var updateInterval=1000;var bytesPerInterval=bytesPerSecond*(updateInterval/1000);var numIntervals=totalBytes/bytesPerInterval;var pctPerInterval=uploader.maxFakePct/numIntervals;uploader.fakeServerProgress(updateInterval,divProg,pct,pctPerInterval);}},uploadSuccess:function(fileObj,serverData){var divProg=$('fileprog_'+fileObj.id);if(divProg){divProg._done=true;uploader.setProgress(divProg,1);uploader.removeRemoveLink(fileObj.id);}},fileQueued:function(fileObj){++uploader.numFiles;var divContainer=document.createElement('div');divContainer.className="progressContainer";divContainer.id="uldiv_"+fileObj.id;var tblItem=document.createElement('table');var trItem=tblItem.insertRow(-1);var tdName=trItem.insertCell(-1);var divName=document.createElement('div');divName.className="upload_name";divName.innerHTML=fileObj.name;tdName.appendChild(divName);var tdSize=trItem.insertCell(-1);tdSize.className="upload_size";tdSize.innerHTML=uploader.makeSizeStr(fileObj.size);var tdTrash=trItem.insertCell(-1);tdTrash.className="upload_remove";tdTrash.innerHTML="<a href='#' id='ulrem_"+fileObj.id+"' onclick='uploader.onRemoveClick(\""+fileObj.id+"\")'><img src='/img/trash.gif' /></a>";var divProg=document.createElement('div');divProg.className="progress progress_fill";divProg.id="fileprog_"+fileObj.id;var divBg=document.createElement('div');divBg.className="progress progress_bg";var divItem=document.createElement('div');divItem.className="upload_item";divItem.appendChild(tblItem);divContainer.appendChild(divBg);divContainer.appendChild(divProg);divContainer.appendChild(divItem);$('photo_list').appendChild(divContainer);},fileDialogComplete:function(numFilesSelected){uploader.updateFileCount();if(numFilesSelected){if(uploader.intro){uploader.intro=false;$('upload_box').style.visibility="";uploader.autoResize();}else{var nodList=$('photo_list');nodList.scrollTop=nodList.scrollHeight;}
$('upload_button').focus();}
if(uploader.queueMsg){alert(uploader.queueMsg);uploader.queueMsg="";}},uploadComplete:function(fileObj){if(uploader.cancelFlag){uploader.cancelFlag=false;return;}
if(this.getStats().files_queued>0){this.startUpload();}else{uploader._isUploading=false;$('sb_photo_finalize').submit();}},fileQueueError:function(fileObj,errCode,errMsg){if(errCode==SWFUpload.QUEUE_ERROR.QUEUE_LIMIT_EXCEEDED){alert("Cannot add files. There is a limit of "+this.getSetting("file_queue_limit")+" files per upload.");return;}
if(!uploader.queueMsg){uploader.queueMsg="Could not add the following files:\n";}
uploader.queueMsg+=fileObj.name+": "+errMsg+"\n";},uploadError:function(fileObj,errCode,errMsg){if(errCode==SWFUpload.UPLOAD_ERROR.FILE_CANCELLED)
return;uploader.cancelFlag=true;var msg="Error uploading "+fileObj.name+": "+errMsg+"\n";var cont=true;if(this.getStats().files_queued>0){msg+="Continue uploading the remaining files?";cont=confirm(msg);}else{alert(msg);}
if(cont){uploader.uploadComplete.call(this,fileObj);}else{uploader.cancelAll();heart.closeCurrentLightbox();}},autoResize:function(){var el=uploader.core.getMovieElement();var elUnder=uploader.underlay;var offset=getRelativeOffset(elUnder,$('sharebox'));el.style.width=elUnder.offsetWidth+"px";el.style.height=elUnder.offsetHeight+"px";el.style.top=offset.y+"px";el.style.left=offset.x+"px";el.style.visibility='visible';},setFlashVisibility:function(visible){if(uploader.core){setVisibility(uploader.core.getMovieElement(),visible);}},mouseOver:function(){dojo.addClass(uploader.underlay,'hover');},mouseOut:function(){dojo.removeClass(uploader.underlay,'hover');}};