var multiFileUpload=new Class({Implements:Options,options:{url:'/cgi-bin/xxl_upload.cgi',getUrl:'/php/xxl_get_req.php',errorURL:'/php/xxl_error.php',requestTimeOut:1000,toMByte:1048576,statusBarWidth:273},initialize:function(forms,starter,text){this.forms=forms;this.starter=starter;this.text=text;this.statusbarCounter=0;this.options.cartUrl=$('multiFileUploadForm').get('action');this.uploadError=false;this.lastUploadId=0;this.formsToUpload=new Array();this.starter.addEvent('click',this.prepareUpload.bind(this));this.forms.set('target','uploadTarget');this.sessionhider=new Element('input',{'type':'hidden','value':ctrl.get('session_id'),'name':'xxl_session'});this.iframe=new IFrame({'name':'uploadTarget','id':'uploadTarget','styles':{'height':'1px','width':'1px'}}).inject(document.getElement('body'));this.date=new Date();this.sessionId=ctrl.get('session_id');var sec=this.date.getTime().toString();this.uploadId=this.sessionId.substr(0,(this.sessionId.length-sec.length))+sec;var action=this.options.url;if(action.match(/\?/))
action+='&progress_id='+this.uploadId;else
action+='?progress_id='+this.uploadId;this.forms.set('action',action);this.statusRequest=new Request({url:'/UpdateProgress?progress_id='+this.uploadId,method:'post',enctype:'multipart/form-data',onComplete:this.updateStatus.bind(this)});this.statusRequest.setHeader('Accept','text/x-json; q=1.1');this.totalSize=new Element('p',{'class':'fileUploadTotalSize','html':'0'});this.receivedSize=new Element('p',{'class':'fileUploadReceivedSize','html':'0'});this.receivedSizePercent=new Element('p',{'class':'fileUploadReceivedSizePercent','html':'0'});this.uploadSpeed=new Element('p',{'class':'fileUploadSpeed','html':'0'});this.message=new Element('p',{'class':'fileUploadMessage','html':''}).inject(this.text);$('button_close_upload').addEvent('click',function(){this.iframe.destroy();Infobox.close();}.bind(this));$('upload_multi_head_1').addEvent('click',function(){$('upload_headline').set('src','/images/website/global/'+ctrl.get('country')+'/upload_multi_head_1.gif');$('upload_content').setStyle('display','block');$('upload_content_images').setStyle('display','none');});$('upload_multi_head_2').addEvent('click',function(){$('upload_headline').set('src','/images/website/global/'+ctrl.get('country')+'/upload_multi_head_2.gif');$('upload_content').setStyle('display','none');$('upload_content_images').setStyle('display','block');});},startStatus:function(){this.statusRequest.send();},prepareUpload:function(event){var e=new Event(event).stop();this.uploadError=false;var fileCounter=0;this.forms.each(function(el){var selectedFile=el.getElement('input[name=userImage]').get('value');if(selectedFile.length>0){var regEx=/\.(?:jpg|jpeg|jpe|tif|tiff)$/i;if(regEx.test(selectedFile)){fileCounter++;this.formsToUpload.push(el);}
else{if(!this.uploadError)
{this.uploadError=true;var myRequest=new Request.JSON({url:this.options.errorURL,data:{'error':'invalid_upload_filetype',xxl_session:ctrl.get('session_id')},onComplete:function(jsonObject){Alerter.show({duration:50,transition:Fx.Transitions.linear,draggable:false,modalize:false,button:true,backgroundcolor:'#333333'},jsonObject.title,jsonObject.error);}}).send();}}}}.bind(this));if(fileCounter>=1&&!this.uploadError){this.startUpload();}
else if(fileCounter==0&&!this.uploadError){var myRequest=new Request.JSON({url:this.options.errorURL,data:{'error':'missing_upload_file',xxl_session:ctrl.get('session_id')},onComplete:function(jsonObject){Alerter.show({duration:50,transition:Fx.Transitions.linear,draggable:false,modalize:false,button:true,backgroundcolor:'#333333'},jsonObject.title,jsonObject.error);}}).send();}},startUpload:function(){$('framefileUploadStart').setStyle('display','none');$('uploadStatusText').setStyle('display','block');$('uploadStatusTextProgress').setStyle('display','block');var formToSubmit=this.formsToUpload[0];this.sessionhider.inject(formToSubmit);formToSubmit.submit();formToSubmit.getElement('input[name=userImage]').set({'styles':{'display':'none'}});var activeFile=formToSubmit.getElement('input[name=userImage]').get('value');if(activeFile.match(/.*\\.*/))
{var pat=/^.*\\(.*)$/;pat.exec(activeFile);activeFile=RegExp.$1}
else if(activeFile.match(/.*\/.*/))
{var pat=/^.*\/(.*)$/;pat.exec(activeFile);activeFile=RegExp.$1}
this.statusbarCounter++;var wrapper=new Element('div',{'class':'uploadStatusBarWrapper','styles':{'margin-left':'0px'}}).inject(formToSubmit);this.statusBar=new Element('div',{'class':'uploadStatusBar','id':'bar_'+this.statusbarCounter,'rel':activeFile,'styles':{'width':'0px'}}).inject(wrapper);this.receivedSizePercent=new Element('div',{'class':'fileUploadReceivedSizePercent','html':'0'}).inject(wrapper);this.startStatus();},updateStatus:function(responseText){var myObject=JSON.decode(responseText);this.totalSize.set('html',(myObject.size/this.options.toMByte).toFixed(2));if((myObject.size/this.options.toMByte).toFixed(2)>30){this.statusRequest.cancel();if(Browser.Engine.name.contains('trident'))
{document.execCommand('Stop');}
else
{window.stop();}
this.formsToUpload.empty();this.errorUploading('invalid_upload_filesize');}
else
{var activeFile=this.statusBar.get('rel');var maxCharCount=33;if(activeFile.length>maxCharCount)
{activeFile=activeFile.substring(0,maxCharCount)+'...';}
this.receivedSize.set('html',(myObject.received/this.options.toMByte).toFixed(2));this.receivedSizePercent.set('html',activeFile+' ('+(myObject.received/(myObject.size/100)).toFixed(0)+'%)')
var newWidth=(this.options.statusBarWidth/myObject.size)*myObject.received;this.statusBar.setStyle('width',newWidth.round()+'px');if(myObject.size!=myObject.received){this.statusRequest.send.delay(this.options.requestTimeOut,this.statusRequest);}
else{this.uploadFinishedTest=this.isUploadComplete.periodical(1000,this);}}},isUploadComplete:function(){var test=false;var result='';$try(function(){result=frames[this.iframe.get('name')].document.getElementById('uploadResult').innerHTML;test=true;}.bind(this));if(test){var myResult=JSON.decode(result);if(myResult.status=='OK'&&myResult.id!=this.lastUploadId){this.lastUploadId=myResult.id;$clear(this.uploadFinishedTest);this.formsToUpload.shift();if(this.formsToUpload.length>0){this.message.set('html','');this.totalSize.set('html','0');this.receivedSize.set('html','0');this.uploadSpeed.set('html','0');this.startUpload.delay(500,this);}
else{window.location=this.options.cartUrl+'?xxl_session='+this.sessionId+'&load='+this.lastUploadId;}}
else if(myResult.status=='ERROR'){this.formsToUpload.empty();$clear(this.uploadFinishedTest);this.errorUploading('saving_upload_image_failed');}
else{}}
else{}},errorUploading:function(errtype){var myRequest=new Request.JSON({url:this.options.errorURL,data:{'error':errtype,xxl_session:ctrl.get('session_id')},onComplete:function(jsonObject){Alerter.show({duration:50,transition:Fx.Transitions.linear,draggable:false,modalize:false,button:true,backgroundcolor:'#333333'},jsonObject.title,jsonObject.error);}}).send();$('bar_'+this.statusbarCounter).setStyles({'width':'273px','background-image':'url(/images/website/content/content_right/uploader/loader_status_bar_red.gif)'});$('uploadStatusTextProgress').setStyle('display','none');$('framefileRetryStart').setStyle('display','block');$('framefileRetryStart').addEvent('click',function(){$$('.uploadForm input').each(function(el){el.setStyle('display','block');});$$('.uploadForm form').each(function(el){el.reset();});$$('.uploadForm .uploadStatusBarWrapper').each(function(el){el.destroy();});this.setStyle('display','none');$('framefileUploadStart').setStyle('display','block');});if(errtype=='saving_upload_image_failed'){$('button_close_upload').removeEvents('click');$('button_close_upload').addEvent('click',function(){window.location=this.options.cartUrl+'?xxl_session='+this.sessionId+'&load='+this.lastUploadId;}.bind(this));}}});