/*--------------------------------------------------
FILE_UPLOADER
Version:   0.1.0
Generated: 22/3/2010
--------------------------------------------------*/
UKISA.namespace("UKISA.widget.FileUploader");UKISA.widget.FileUploader=function(c,a){var b;this.config.formId=c;this.config.form=document.getElementById(c);this.config.fileFilter=[this.config.fileFilterImages];for(b in a){if(typeof this.config[b]!=="undefined"){this.config[b]=options[b]}}this.onFlashVersionError=new YAHOO.util.CustomEvent("onFlashVersionError",this);this.onStatusUpdate=new YAHOO.util.CustomEvent("onStatusUpdate",this);this.onFileSizeError=new YAHOO.util.CustomEvent("onFileSizeError",this);this.onUploadComplete=new YAHOO.util.CustomEvent("onUploadComplete",this);UKISA.widget.FileUploader.instance=this;this.init()};UKISA.widget.FileUploader.instance=null;this.uploader=null;UKISA.widget.FileUploader.eventReady=function(a){alert("ready")};UKISA.widget.FileUploader.prototype={onFlashVersionError:null,onStatusUpdate:null,onFileSizeError:null,onUploadComplete:null,config:{debug:false,formId:null,form:null,statusCanvas:"#uploader-status",selectedFileCanvas:"#file-uploader-selected",uploadButton:null,uploadUrl:"/servlet/FileUploadHandler",uploadParameters:["type","title","firstName","secondName","town","site","acceptTerms","colour1"],allMultipleFiles:false,maxFileSize:10240000,fileFilter:null,fileFilterImages:{description:"Images",extensions:"*.jpeg;*.jpg;*.png;*.gif"},fileFilterVideos:{description:"Videos",extensions:"*.avi;*.mov;*.mpg"},minFlashVerionRequired:9.045,uploaderSwf:"/web/yui/build/uploader/assets/uploader-2.7.0.swf",uploaderButton:"/web/images/buttons/file_upload.gif"},status:null,validation:null,uploader:null,fileId:null,init:function(){var c,a,b;c=UKISA.widget.FileUploader.instance;this.log("FileUploader.init()");a=YAHOO.util.SWFDetect.getFlashVersion();if(a<this.config.minFlashVerionRequired){this.onFlashVersionErrorEvent()}YAHOO.widget.Uploader.SWFURL=this.config.uploaderSwf;this.uploader=new YAHOO.widget.Uploader("uploader-ui",this.config.uploaderButton,true);this.uploader.addListener("contentReady",c.onContentReadyEvent);this.uploader.addListener("fileSelect",c.onFileSelectEvent);this.uploader.addListener("uploadStart",c.onUploadStartEvent);this.uploader.addListener("uploadProgress",c.onUploadProgressEvent);this.uploader.addListener("uploadCancel",c.onUploadCancelEvent);this.uploader.addListener("uploadComplete",c.onUploadCompleteEvent);this.uploader.addListener("uploadCompleteData",c.onUploadResponseEvent);this.uploader.addListener("uploadError",c.onUploadErrorEvent);if(this.config.uploadButton){b=$(this.config.uploadButton,"body",true);YAHOO.util.Event.addListener(b,"click",this.upload,null,this)}else{this.validation=new UKISA.widget.FormValidation(this.config.formId,{callback:this.upload})}},upload:function(d){var f,c,b,a;f=UKISA.widget.FileUploader.instance;if(f.fileId!=null&&(f.validation&&f.validation.isValid)){f.uploadClick=true;c={};for(b=0,a=f.config.uploadParameters.length;b<a;b++){c[f.config.uploadParameters[b]]=f.config.form[f.config.uploadParameters[b]].value}if(typeof c.successURL==="undefined"){c.successURL="/ajax/response.jsp"}if(typeof c.failURL==="undefined"){c.failURL="/ajax/response.jsp"}f.uploader.upload(f.fileId,f.config.uploadUrl,"POST",c,"file");f.fileId=null}YAHOO.util.Event.preventDefault(d)},onUploadStartEvent:function(a){var b;b=UKISA.widget.FileUploader.instance;b.log("FileUploader.onUploadStartEvent()")},onContentReadyEvent:function(){var b,a;b=UKISA.widget.FileUploader.instance;b.log("FileUploader.onContentReadyEvent()");b.uploader.setAllowLogging(true);b.uploader.setAllowMultipleFiles(b.config.allMultipleFiles);a=b.config.fileFilter;b.uploader.setFileFilters(a)},onFileSelectEvent:function(a){var h,i,d,g,j,e,k,f,c,d,b;h=UKISA.widget.FileUploader.instance;h.log("FileUploader.onFileSelectEvent()");for(j in a.fileList){if(YAHOO.lang.hasOwnProperty(a.fileList,j)){h.fileId=a.fileList[j].id}}b=a.fileList[h.fileId].size;if(b>h.config.maxFileSize){return h.onFileSizeError.call(h,a)}b=Math.round(b/1024000);d=a.fileList[h.fileId].name.replace(/.[a-zA-Z0-9]{1,6}$/gi,"");h.onSselectedFileUpdateEvent("You have chosen: "+d+"("+b+"MB)")},onUploadResponseEvent:function(a){var b;b=UKISA.widget.FileUploader.instance;b.log("FileUploader.onUploadResponseEvent()")},onHandleClearFilesEvent:function(){var a;a=UKISA.widget.FileUploader.instance;a.log("FileUploader.onHandleClearFilesEvent()");a.uploader.clearFileList();a.uploader.enable();a.fileId=null;a.onStatusUpdateEvent("")},onUploadProgressEvent:function(b){var c,a;c=UKISA.widget.FileUploader.instance;c.log("FileUploader.onUploadProgressEvent()");a=Math.round((b.bytesLoaded/b.bytesTotal)*100);c.onStatusUpdateEvent(a+"% complete")},onUploadErrorEvent:function(a){var b;b=UKISA.widget.FileUploader.instance;b.log("FileUploader.onUploadErrorEvent(): "+a.status);b.onStatusUpdateEvent("Sorry, there has been a problem.")},onUploadCancelEvent:function(a){var b;b=UKISA.widget.FileUploader.instance;b.log("FileUploader.onUploadCancelEvent()");b.onStatusUpdateEvent("Upload canceled")},onUploadCompleteEvent:function(a){var b;b=UKISA.widget.FileUploader.instance;b.log("FileUploader.onUploadCompleteEvent()");b.uploader.clearFileList();b.onStatusUpdateEvent("Upload complete");b.onUploadComplete.fire(this);if(b.config.form.redirect.value==="Y"){window.location=b.config.form.successURL.value}},onFileSizeErrorEvent:function(a){var b;b=UKISA.widget.FileUploader.instance;b.log("FileUploader.onFileSizeErrorEvent()");b.onFileSizeError.fire(this)},onStatusUpdateEvent:function(b){var c,a;c=UKISA.widget.FileUploader.instance;c.log("FileUploader.onStatusUpdateEvent(): "+b);a=$(this.config.statusCanvas,"body",true);if(!a){c.log("Cannot find status canvas.");return}a.innerHTML=b;c.onStatusUpdate.fire(this)},onSselectedFileUpdateEvent:function(b){var c,a;c=UKISA.widget.FileUploader.instance;c.log("FileUploader.onSselectedFileUpdateEvent(): "+b);a=$(this.config.selectedFileCanvas,"body",true);if(!a){c.log("Cannot find status canvas.");return}a.innerHTML=b},onFlashVersionErrorEvent:function(a){var b;b=UKISA.widget.FileUploader.instance;b.log("FileUploader.onFlashVersionErrorEvent()");b.onFlashVersionError.fire(this)},log:function(a){var b;b=UKISA.widget.FileUploader.instance;if(b.config.debug){console.log(a)}}};
