define(["localassetmanager","cameraRoll"],function(localAssetManager,cameraRoll){"use strict";functiongetFilesToUpload(files,uploadHistory){returnfiles.filter(function(file){if(!file)return!1;varuploadId=getUploadId(file);return0===uploadHistory.FilesUploaded.filter(function(u){returnuploadId===u.Id}).length})}functiongetUploadId(file){returnbtoa(file.Id+"1")}functionuploadNext(files,index,server,apiClient,resolve,reject){varlength=files.length;if(index>=length)returnvoidresolve();uploadFile(files[index],apiClient).then(function(){uploadNext(files,index+1,server,apiClient,resolve,reject)},function(){uploadNext(files,index+1,server,apiClient,resolve,reject)})}functionuploadFile(file,apiClient){returnnewPromise(function(resolve,reject){require(["fileupload"],function(FileUpload){varurl=apiClient.getUrl("Devices/CameraUploads",{DeviceId:apiClient.deviceId(),Name:file.Name,Album:"Camera Roll",Id:getUploadId(file),api_key:apiClient.accessToken()});console.log("Uploading file to "+url),(newFileUpload).upload(file,url).then(resolve,reject)})})}functionContentUploader(){}returnContentUploader.prototype.uploadImages=function(connectionManager,server){returncameraRoll.getFiles().then(function(photos){if(!photos.length)returnPromise.resolve();varapiClient=connectionManager.getApiClient(server.Id);returnapiClient.getContentUploadHistory().then(function(uploadHistory){returnphotos=getFilesToUpload(photos,uploadHistory),console.log("Found "+photos.length+" files to upload"),newPromise(function(resolve,reject){uploadNext(photos,0,server,apiClient,resolve,reject)})},function(){returnPromise.resolve()})})},ContentUploader});