var MultiUpload=new Class({initialize:function(input_element,max,name_suffix_template,show_filename_only,remove_empty_element){if(!(input_element.tagName=='INPUT'&&input_element.type=='file')){alert('Error: not a file input element');return}this.elements=[];this.uid_lookup={};this.uid=0;if($defined(max)){this.max=max}else{this.max=0}if($defined(name_suffix_template)){this.name_suffix_template=name_suffix_template}else{this.name_suffix_template='_{id}'}if($defined(show_filename_only)){this.show_filename_only=show_filename_only}else{this.show_filename_only=false}if($defined(remove_empty_element)){this.remove_empty_element=remove_empty_element}else{this.remove_empty_element=false}$(input_element);this.name=input_element.name;this.initializeElement(input_element);var container=new Element('div',{'class':'multiupload'});this.list=new Element('div',{'class':'list'});container.injectAfter(input_element);container.adopt(input_element);container.adopt(this.list);if(this.remove_empty_element){input_element.form.addEvent('submit',function(){this.elements.getLast().element.disabled=true}.bind(this))}},addRow:function(){if(this.max==0||this.elements.length<=this.max){current_element=this.elements.getLast();var name=current_element.element.value;if(this.show_filename_only){if(name.contains('\\')){name=name.substring(name.lastIndexOf('\\')+1)}if(name.contains('//')){name=name.substring(name.lastIndexOf('//')+1)}}var item=new Element('span').set('text',name);var delete_button=new Element('img',{'src':'../images/img_cross_small.gif','alt':'Delete','title':'Delete','events':{'click':function(uid){this.deleteRow(uid)}.pass(current_element.uid,this)}});var row_element=new Element('div',{'class':'item'}).adopt(delete_button).adopt(item);this.list.adopt(row_element);current_element.row=row_element;var new_input=new Element('input',{'type':'file','disabled':(this.elements.length==this.max)?true:false});this.initializeElement(new_input);current_element.element.style.position='absolute';current_element.element.style.left='-1000px';new_input.injectAfter(current_element.element)}else{alert('You may not upload more than '+this.max+' files')}},deleteRow:function(uid){deleted_row=this.elements[this.uid_lookup[uid]];var rep_text_sd=deleted_row.element.value;if(/msie/i.test(navigator.userAgent)&&!/opera/i.test(navigator.userAgent)){var path=rep_text_sd.split('\\');rep_text_sd=path[path.length-1]}if(confirm('Are you sure you want to remove the item\r\n'+rep_text_sd+'\r\nfrom the upload queue?')){this.elements.getLast().element.disabled=false;deleted_row.element.dispose();deleted_row.row.dispose();delete(this.elements[this.uid_lookup[uid]]);var new_elements=[];this.uid_lookup={};for(var i=0;i<this.elements.length;i++){if($defined(this.elements[i])){this.elements[i].element.name=this.name+this.name_suffix_template.replace(/\{id\}/,new_elements.length);this.uid_lookup[this.elements[i].uid]=new_elements.length;new_elements.push(this.elements[i])}}this.elements=new_elements}},initializeElement:function(element){element.addEvent('change',function(){this.addRow()}.bind(this));element.name=this.name+this.name_suffix_template.replace(/\{id\}/,this.elements.length);this.uid_lookup[this.uid]=this.elements.length;this.elements.push({'uid':this.uid,'element':element});this.uid++}});