From 24ab1e2467a178817735b9049e4a8a6612e13d41 Mon Sep 17 00:00:00 2001 From: plegall Date: Fri, 19 Aug 2011 16:04:43 +0000 Subject: [PATCH] feature 2410 added: uploadify upgraded from version 2.1.0 to 3.0.0 (still beta, but said as stable by users on uploadify forums) bug 2411 fixed: thanks to uploadify 3.0.0, the "Browse" button is now localized (text in any language) bug 1653 fixed: if the selected file exceeds the upload_max_size (as defined in the php.ini), an alert is shown and the file is not added to the queue. bug 2412 fixed: ability to select GIF files with the Flash Uploader. git-svn-id: http://piwigo.org/svn/trunk@11975 68402e56-0260-453c-a942-63ccdbb3a9ee --- .../include/photos_add_direct_prepare.inc.php | 7 +- .../include/photos_add_direct_process.inc.php | 14 +- .../uploadify/jquery.uploadify.v2.1.0.min.js | 26 ---- .../uploadify/jquery.uploadify.v3.0.0.min.js | 38 +++++ admin/include/uploadify/swfobject.js | 4 - admin/include/uploadify/uploadify.css | 70 ++++++++- admin/include/uploadify/uploadify.swf | Bin 23119 -> 12787 bytes admin/include/uploadify/uploadifyLang_en.js | 32 +++++ .../default/template/photos_add_direct.tpl | 135 ++++++------------ 9 files changed, 195 insertions(+), 131 deletions(-) delete mode 100644 admin/include/uploadify/jquery.uploadify.v2.1.0.min.js create mode 100644 admin/include/uploadify/jquery.uploadify.v3.0.0.min.js delete mode 100644 admin/include/uploadify/swfobject.js create mode 100644 admin/include/uploadify/uploadifyLang_en.js diff --git a/admin/include/photos_add_direct_prepare.inc.php b/admin/include/photos_add_direct_prepare.inc.php index 34a5f79b7..50b1c0303 100644 --- a/admin/include/photos_add_direct_prepare.inc.php +++ b/admin/include/photos_add_direct_prepare.inc.php @@ -85,7 +85,12 @@ if (pwg_image::get_library() == 'gd') $available_memory = get_ini_size('memory_limit') - memory_get_usage(); $max_upload_width = round(sqrt($available_memory/(2 * $fudge_factor))); $max_upload_height = round(2 * $max_upload_width / 3); - $max_upload_resolution = floor($max_upload_width * $max_upload_height / (1024 * 1024)); + + // we don't want dimensions like 2995x1992 but 3000x2000 + $max_upload_width = round($max_upload_width/100)*100; + $max_upload_height = round($max_upload_height/100)*100; + + $max_upload_resolution = floor($max_upload_width * $max_upload_height / (1000000)); // no need to display a limitation warning if the limitation is huge like 20MP if ($max_upload_resolution < 25) diff --git a/admin/include/photos_add_direct_process.inc.php b/admin/include/photos_add_direct_process.inc.php index 15c7abebb..c0cb3e4c0 100644 --- a/admin/include/photos_add_direct_process.inc.php +++ b/admin/include/photos_add_direct_process.inc.php @@ -42,9 +42,19 @@ if (isset($_GET['processed'])) ) ); } - - $category_id = $_POST['category']; + else + { + $category_id = $_POST['category']; + } + if (isset($_POST['onUploadError']) and is_array($_POST['onUploadError']) and count($_POST['onUploadError']) > 0) + { + foreach ($_POST['onUploadError'] as $error) + { + array_push($page['errors'], $error); + } + } + $image_ids = array(); if (isset($_FILES) and !empty($_FILES['image_upload'])) diff --git a/admin/include/uploadify/jquery.uploadify.v2.1.0.min.js b/admin/include/uploadify/jquery.uploadify.v2.1.0.min.js deleted file mode 100644 index 04592ffec..000000000 --- a/admin/include/uploadify/jquery.uploadify.v2.1.0.min.js +++ /dev/null @@ -1,26 +0,0 @@ -/* -Uploadify v2.1.0 -Release Date: August 24, 2009 - -Copyright (c) 2009 Ronnie Garcia, Travis Nickels - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -*/ - -if(jQuery){(function(a){a.extend(a.fn,{uploadify:function(b){a(this).each(function(){settings=a.extend({id:a(this).attr("id"),uploader:"uploadify.swf",script:"uploadify.php",expressInstall:null,folder:"",height:30,width:110,cancelImg:"cancel.png",wmode:"opaque",scriptAccess:"sameDomain",fileDataName:"Filedata",method:"POST",queueSizeLimit:999,simUploadLimit:1,queueID:false,displayData:"percentage",onInit:function(){},onSelect:function(){},onQueueFull:function(){},onCheck:function(){},onCancel:function(){},onError:function(){},onProgress:function(){},onComplete:function(){},onAllComplete:function(){}},b);var e=location.pathname;e=e.split("/");e.pop();e=e.join("/")+"/";var f={};f.uploadifyID=settings.id;f.pagepath=e;if(settings.buttonImg){f.buttonImg=escape(settings.buttonImg)}if(settings.buttonText){f.buttonText=escape(settings.buttonText)}if(settings.rollover){f.rollover=true}f.script=settings.script;f.folder=escape(settings.folder);if(settings.scriptData){var g="";for(var d in settings.scriptData){g+="&"+d+"="+settings.scriptData[d]}f.scriptData=escape(g.substr(1))}f.width=settings.width;f.height=settings.height;f.wmode=settings.wmode;f.method=settings.method;f.queueSizeLimit=settings.queueSizeLimit;f.simUploadLimit=settings.simUploadLimit;if(settings.hideButton){f.hideButton=true}if(settings.fileDesc){f.fileDesc=settings.fileDesc}if(settings.fileExt){f.fileExt=settings.fileExt}if(settings.multi){f.multi=true}if(settings.auto){f.auto=true}if(settings.sizeLimit){f.sizeLimit=settings.sizeLimit}if(settings.checkScript){f.checkScript=settings.checkScript}if(settings.fileDataName){f.fileDataName=settings.fileDataName}if(settings.queueID){f.queueID=settings.queueID}if(settings.onInit()!==false){a(this).css("display","none");a(this).after('
');swfobject.embedSWF(settings.uploader,settings.id+"Uploader",settings.width,settings.height,"9.0.24",settings.expressInstall,f,{quality:"high",wmode:settings.wmode,allowScriptAccess:settings.scriptAccess});if(settings.queueID==false){a("#"+a(this).attr("id")+"Uploader").after('
')}}if(typeof(settings.onOpen)=="function"){a(this).bind("uploadifyOpen",settings.onOpen)}a(this).bind("uploadifySelect",{action:settings.onSelect,queueID:settings.queueID},function(j,h,i){if(j.data.action(j,h,i)!==false){var k=Math.round(i.size/1024*100)*0.01;var l="KB";if(k>1000){k=Math.round(k*0.001*100)*0.01;l="MB"}var m=k.toString().split(".");if(m.length>1){k=m[0]+"."+m[1].substr(0,2)}else{k=m[0]}if(i.name.length>20){fileName=i.name.substr(0,20)+"..."}else{fileName=i.name}queue="#"+a(this).attr("id")+"Queue";if(j.data.queueID){queue="#"+j.data.queueID}a(queue).append('
'+fileName+" ("+k+l+')
')}});if(typeof(settings.onSelectOnce)=="function"){a(this).bind("uploadifySelectOnce",settings.onSelectOnce)}a(this).bind("uploadifyQueueFull",{action:settings.onQueueFull},function(h,i){if(h.data.action(h,i)!==false){alert("The queue is full. The max size is "+i+".")}});a(this).bind("uploadifyCheckExist",{action:settings.onCheck},function(m,l,k,j,o){var i=new Object();i=k;i.folder=e+j;if(o){for(var h in k){var n=h}}a.post(l,i,function(r){for(var p in r){if(m.data.action(m,l,k,j,o)!==false){var q=confirm("Do you want to replace the file "+r[p]+"?");if(!q){document.getElementById(a(m.target).attr("id")+"Uploader").cancelFileUpload(p,true,true)}}}if(o){document.getElementById(a(m.target).attr("id")+"Uploader").startFileUpload(n,true)}else{document.getElementById(a(m.target).attr("id")+"Uploader").startFileUpload(null,true)}},"json")});a(this).bind("uploadifyCancel",{action:settings.onCancel},function(l,h,k,m,j){if(l.data.action(l,h,k,m,j)!==false){var i=(j==true)?0:250;a("#"+a(this).attr("id")+h).fadeOut(i,function(){a(this).remove()})}});if(typeof(settings.onClearQueue)=="function"){a(this).bind("uploadifyClearQueue",settings.onClearQueue)}var c=[];a(this).bind("uploadifyError",{action:settings.onError},function(l,h,k,j){if(l.data.action(l,h,k,j)!==false){var i=new Array(h,k,j);c.push(i);a("#"+a(this).attr("id")+h+" .percentage").text(" - "+j.type+" Error");a("#"+a(this).attr("id")+h).addClass("uploadifyError")}});a(this).bind("uploadifyProgress",{action:settings.onProgress,toDisplay:settings.displayData},function(j,h,i,k){if(j.data.action(j,h,i,k)!==false){a("#"+a(this).attr("id")+h+"ProgressBar").css("width",k.percentage+"%");if(j.data.toDisplay=="percentage"){displayData=" - "+k.percentage+"%"}if(j.data.toDisplay=="speed"){displayData=" - "+k.speed+"KB/s"}if(j.data.toDisplay==null){displayData=" "}a("#"+a(this).attr("id")+h+" .percentage").text(displayData)}});a(this).bind("uploadifyComplete",{action:settings.onComplete},function(k,h,j,i,l){if(k.data.action(k,h,j,unescape(i),l)!==false){a("#"+a(this).attr("id")+h+" .percentage").text(" - Completed");a("#"+a(this).attr("id")+h).fadeOut(250,function(){a(this).remove()})}});if(typeof(settings.onAllComplete)=="function"){a(this).bind("uploadifyAllComplete",{action:settings.onAllComplete},function(h,i){if(h.data.action(h,i)!==false){c=[]}})}})},uploadifySettings:function(f,j,c){var g=false;a(this).each(function(){if(f=="scriptData"&&j!=null){if(c){var i=j}else{var i=a.extend(settings.scriptData,j)}var l="";for(var k in i){l+="&"+k+"="+escape(i[k])}j=l.substr(1)}g=document.getElementById(a(this).attr("id")+"Uploader").updateSettings(f,j)});if(j==null){if(f=="scriptData"){var b=unescape(g).split("&");var e=new Object();for(var d=0;d','','','','','','',""].join("")};SWFUpload.prototype.getFlashVars=function(){var b=this.buildParamString();var a=this.settings.http_success.join(",");return["movieName=",encodeURIComponent(this.movieName),"&uploadURL=",encodeURIComponent(this.settings.upload_url),"&useQueryString=",encodeURIComponent(this.settings.use_query_string),"&requeueOnError=",encodeURIComponent(this.settings.requeue_on_error),"&httpSuccess=",encodeURIComponent(a),"&assumeSuccessTimeout=",encodeURIComponent(this.settings.assume_success_timeout),"&params=",encodeURIComponent(b),"&filePostName=",encodeURIComponent(this.settings.file_post_name),"&fileTypes=",encodeURIComponent(this.settings.file_types),"&fileTypesDescription=",encodeURIComponent(this.settings.file_types_description),"&fileSizeLimit=",encodeURIComponent(this.settings.file_size_limit),"&fileUploadLimit=",encodeURIComponent(this.settings.file_upload_limit),"&fileQueueLimit=",encodeURIComponent(this.settings.file_queue_limit),"&debugEnabled=",encodeURIComponent(this.settings.debug_enabled),"&buttonImageURL=",encodeURIComponent(this.settings.button_image_url),"&buttonWidth=",encodeURIComponent(this.settings.button_width),"&buttonHeight=",encodeURIComponent(this.settings.button_height),"&buttonText=",encodeURIComponent(this.settings.button_text),"&buttonTextTopPadding=",encodeURIComponent(this.settings.button_text_top_padding),"&buttonTextLeftPadding=",encodeURIComponent(this.settings.button_text_left_padding),"&buttonTextStyle=",encodeURIComponent(this.settings.button_text_style),"&buttonAction=",encodeURIComponent(this.settings.button_action),"&buttonDisabled=",encodeURIComponent(this.settings.button_disabled),"&buttonCursor=",encodeURIComponent(this.settings.button_cursor)].join("")};SWFUpload.prototype.getMovieElement=function(){if(this.movieElement==undefined){this.movieElement=document.getElementById(this.movieName)}if(this.movieElement===null){throw"Could not find Flash element"}return this.movieElement};SWFUpload.prototype.buildParamString=function(){var c=this.settings.post_params;var b=[];if(typeof(c)==="object"){for(var a in c){if(c.hasOwnProperty(a)){b.push(encodeURIComponent(a.toString())+"="+encodeURIComponent(c[a].toString()))}}}return b.join("&")};SWFUpload.prototype.destroy=function(){try{this.cancelUpload(null,false);var a=null;a=this.getMovieElement();if(a&&typeof(a.CallFunction)==="unknown"){for(var c in a){try{if(typeof(a[c])==="function"){a[c]=null}}catch(e){}}try{a.parentNode.removeChild(a)}catch(b){}}window[this.movieName]=null;SWFUpload.instances[this.movieName]=null;delete SWFUpload.instances[this.movieName];this.movieElement=null;this.settings=null;this.customSettings=null;this.eventQueue=null;this.movieName=null;return true}catch(d){return false}};SWFUpload.prototype.displayDebugInfo=function(){this.debug(["---SWFUpload Instance Info---\n","Version: ",SWFUpload.version,"\n","Movie Name: ",this.movieName,"\n","Settings:\n","\t","upload_url: ",this.settings.upload_url,"\n","\t","flash_url: ",this.settings.flash_url,"\n","\t","use_query_string: ",this.settings.use_query_string.toString(),"\n","\t","requeue_on_error: ",this.settings.requeue_on_error.toString(),"\n","\t","http_success: ",this.settings.http_success.join(", "),"\n","\t","assume_success_timeout: ",this.settings.assume_success_timeout,"\n","\t","file_post_name: ",this.settings.file_post_name,"\n","\t","post_params: ",this.settings.post_params.toString(),"\n","\t","file_types: ",this.settings.file_types,"\n","\t","file_types_description: ",this.settings.file_types_description,"\n","\t","file_size_limit: ",this.settings.file_size_limit,"\n","\t","file_upload_limit: ",this.settings.file_upload_limit,"\n","\t","file_queue_limit: ",this.settings.file_queue_limit,"\n","\t","debug: ",this.settings.debug.toString(),"\n","\t","prevent_swf_caching: ",this.settings.prevent_swf_caching.toString(),"\n","\t","button_placeholder_id: ",this.settings.button_placeholder_id.toString(),"\n","\t","button_placeholder: ",(this.settings.button_placeholder?"Set":"Not Set"),"\n","\t","button_image_url: ",this.settings.button_image_url.toString(),"\n","\t","button_width: ",this.settings.button_width.toString(),"\n","\t","button_height: ",this.settings.button_height.toString(),"\n","\t","button_text: ",this.settings.button_text.toString(),"\n","\t","button_text_style: ",this.settings.button_text_style.toString(),"\n","\t","button_text_top_padding: ",this.settings.button_text_top_padding.toString(),"\n","\t","button_text_left_padding: ",this.settings.button_text_left_padding.toString(),"\n","\t","button_action: ",this.settings.button_action.toString(),"\n","\t","button_disabled: ",this.settings.button_disabled.toString(),"\n","\t","custom_settings: ",this.settings.custom_settings.toString(),"\n","Event Handlers:\n","\t","swfupload_loaded_handler assigned: ",(typeof this.settings.swfupload_loaded_handler==="function").toString(),"\n","\t","file_dialog_start_handler assigned: ",(typeof this.settings.file_dialog_start_handler==="function").toString(),"\n","\t","file_queued_handler assigned: ",(typeof this.settings.file_queued_handler==="function").toString(),"\n","\t","file_queue_error_handler assigned: ",(typeof this.settings.file_queue_error_handler==="function").toString(),"\n","\t","upload_start_handler assigned: ",(typeof this.settings.upload_start_handler==="function").toString(),"\n","\t","upload_progress_handler assigned: ",(typeof this.settings.upload_progress_handler==="function").toString(),"\n","\t","upload_error_handler assigned: ",(typeof this.settings.upload_error_handler==="function").toString(),"\n","\t","upload_success_handler assigned: ",(typeof this.settings.upload_success_handler==="function").toString(),"\n","\t","upload_complete_handler assigned: ",(typeof this.settings.upload_complete_handler==="function").toString(),"\n","\t","debug_handler assigned: ",(typeof this.settings.debug_handler==="function").toString(),"\n"].join(""))};SWFUpload.prototype.addSetting=function(b,c,a){if(c==undefined){return(this.settings[b]=a)}else{return(this.settings[b]=c)}};SWFUpload.prototype.getSetting=function(a){if(this.settings[a]!=undefined){return this.settings[a]}return""};SWFUpload.prototype.callFlash=function(functionName,argumentArray){argumentArray=argumentArray||[];var movieElement=this.getMovieElement();var returnValue,returnString;try{returnString=movieElement.CallFunction(''+__flash__argumentsToXML(argumentArray,0)+"");returnValue=eval(returnString)}catch(ex){throw"Call to "+functionName+" failed"}if(returnValue!=undefined&&typeof returnValue.post==="object"){returnValue=this.unescapeFilePostParams(returnValue)}return returnValue};SWFUpload.prototype.selectFile=function(){this.callFlash("SelectFile")};SWFUpload.prototype.selectFiles=function(){this.callFlash("SelectFiles")};SWFUpload.prototype.startUpload=function(a){this.callFlash("StartUpload",[a])};SWFUpload.prototype.cancelUpload=function(a,b){if(b!==false){b=true}this.callFlash("CancelUpload",[a,b])};SWFUpload.prototype.stopUpload=function(){this.callFlash("StopUpload")};SWFUpload.prototype.getStats=function(){return this.callFlash("GetStats")};SWFUpload.prototype.setStats=function(a){this.callFlash("SetStats",[a])};SWFUpload.prototype.getFile=function(a){if(typeof(a)==="number"){return this.callFlash("GetFileByIndex",[a])}else{return this.callFlash("GetFile",[a])}};SWFUpload.prototype.addFileParam=function(a,b,c){return this.callFlash("AddFileParam",[a,b,c])};SWFUpload.prototype.removeFileParam=function(a,b){this.callFlash("RemoveFileParam",[a,b])};SWFUpload.prototype.setUploadURL=function(a){this.settings.upload_url=a.toString();this.callFlash("SetUploadURL",[a])};SWFUpload.prototype.setPostParams=function(a){this.settings.post_params=a;this.callFlash("SetPostParams",[a])};SWFUpload.prototype.addPostParam=function(a,b){this.settings.post_params[a]=b;this.callFlash("SetPostParams",[this.settings.post_params])};SWFUpload.prototype.removePostParam=function(a){delete this.settings.post_params[a];this.callFlash("SetPostParams",[this.settings.post_params])};SWFUpload.prototype.setFileTypes=function(a,b){this.settings.file_types=a;this.settings.file_types_description=b;this.callFlash("SetFileTypes",[a,b])};SWFUpload.prototype.setFileSizeLimit=function(a){this.settings.file_size_limit=a;this.callFlash("SetFileSizeLimit",[a])};SWFUpload.prototype.setFileUploadLimit=function(a){this.settings.file_upload_limit=a;this.callFlash("SetFileUploadLimit",[a])};SWFUpload.prototype.setFileQueueLimit=function(a){this.settings.file_queue_limit=a;this.callFlash("SetFileQueueLimit",[a])};SWFUpload.prototype.setFilePostName=function(a){this.settings.file_post_name=a;this.callFlash("SetFilePostName",[a])};SWFUpload.prototype.setUseQueryString=function(a){this.settings.use_query_string=a;this.callFlash("SetUseQueryString",[a])};SWFUpload.prototype.setRequeueOnError=function(a){this.settings.requeue_on_error=a;this.callFlash("SetRequeueOnError",[a])};SWFUpload.prototype.setHTTPSuccess=function(a){if(typeof a==="string"){a=a.replace(" ","").split(",")}this.settings.http_success=a;this.callFlash("SetHTTPSuccess",[a])};SWFUpload.prototype.setAssumeSuccessTimeout=function(a){this.settings.assume_success_timeout=a;this.callFlash("SetAssumeSuccessTimeout",[a])};SWFUpload.prototype.setDebugEnabled=function(a){this.settings.debug_enabled=a;this.callFlash("SetDebugEnabled",[a])};SWFUpload.prototype.setButtonImageURL=function(a){if(a==undefined){a=""}this.settings.button_image_url=a;this.callFlash("SetButtonImageURL",[a])};SWFUpload.prototype.setButtonDimensions=function(c,a){this.settings.button_width=c;this.settings.button_height=a;var b=this.getMovieElement();if(b!=undefined){b.style.width=c+"px";b.style.height=a+"px"}this.callFlash("SetButtonDimensions",[c,a])};SWFUpload.prototype.setButtonText=function(a){this.settings.button_text=a;this.callFlash("SetButtonText",[a])};SWFUpload.prototype.setButtonTextPadding=function(b,a){this.settings.button_text_top_padding=a;this.settings.button_text_left_padding=b;this.callFlash("SetButtonTextPadding",[b,a])};SWFUpload.prototype.setButtonTextStyle=function(a){this.settings.button_text_style=a;this.callFlash("SetButtonTextStyle",[a])};SWFUpload.prototype.setButtonDisabled=function(a){this.settings.button_disabled=a;this.callFlash("SetButtonDisabled",[a])};SWFUpload.prototype.setButtonAction=function(a){this.settings.button_action=a;this.callFlash("SetButtonAction",[a])};SWFUpload.prototype.setButtonCursor=function(a){this.settings.button_cursor=a;this.callFlash("SetButtonCursor",[a])};SWFUpload.prototype.queueEvent=function(b,c){if(c==undefined){c=[]}else{if(!(c instanceof Array)){c=[c]}}var a=this;if(typeof this.settings[b]==="function"){this.eventQueue.push(function(){this.settings[b].apply(this,c)});setTimeout(function(){a.executeNextEvent()},0)}else{if(this.settings[b]!==null){throw"Event handler "+b+" is unknown or is not a function"}}};SWFUpload.prototype.executeNextEvent=function(){var a=this.eventQueue?this.eventQueue.shift():null;if(typeof(a)==="function"){a.apply(this)}};SWFUpload.prototype.unescapeFilePostParams=function(c){var e=/[$]([0-9a-f]{4})/i;var f={};var d;if(c!=undefined){for(var a in c.post){if(c.post.hasOwnProperty(a)){d=a;var b;while((b=e.exec(d))!==null){d=d.replace(b[0],String.fromCharCode(parseInt("0x"+b[1],16)))}f[d]=c.post[a]}}c.post=f}return c};SWFUpload.prototype.testExternalInterface=function(){try{return this.callFlash("TestExternalInterface")}catch(a){return false}};SWFUpload.prototype.flashReady=function(){var a=this.getMovieElement();if(!a){this.debug("Flash called back ready but the flash movie can't be found.");return}this.cleanUp(a);this.queueEvent("swfupload_loaded_handler")};SWFUpload.prototype.cleanUp=function(a){try{if(this.movieElement&&typeof(a.CallFunction)==="unknown"){this.debug("Removing Flash functions hooks (this should only run in IE and should prevent memory leaks)");for(var c in a){try{if(typeof(a[c])==="function"){a[c]=null}}catch(b){}}}}catch(d){}window.__flash__removeCallback=function(e,f){try{if(e){e[f]=null}}catch(g){}}};SWFUpload.prototype.fileDialogStart=function(){this.queueEvent("file_dialog_start_handler")};SWFUpload.prototype.fileQueued=function(a){a=this.unescapeFilePostParams(a);this.queueEvent("file_queued_handler",a)};SWFUpload.prototype.fileQueueError=function(a,c,b){a=this.unescapeFilePostParams(a);this.queueEvent("file_queue_error_handler",[a,c,b])};SWFUpload.prototype.fileDialogComplete=function(b,c,a){this.queueEvent("file_dialog_complete_handler",[b,c,a])};SWFUpload.prototype.uploadStart=function(a){a=this.unescapeFilePostParams(a);this.queueEvent("return_upload_start_handler",a)};SWFUpload.prototype.returnUploadStart=function(a){var b;if(typeof this.settings.upload_start_handler==="function"){a=this.unescapeFilePostParams(a);b=this.settings.upload_start_handler.call(this,a)}else{if(this.settings.upload_start_handler!=undefined){throw"upload_start_handler must be a function"}}if(b===undefined){b=true}b=!!b;this.callFlash("ReturnUploadStart",[b])};SWFUpload.prototype.uploadProgress=function(a,c,b){a=this.unescapeFilePostParams(a);this.queueEvent("upload_progress_handler",[a,c,b])};SWFUpload.prototype.uploadError=function(a,c,b){a=this.unescapeFilePostParams(a);this.queueEvent("upload_error_handler",[a,c,b])};SWFUpload.prototype.uploadSuccess=function(b,a,c){b=this.unescapeFilePostParams(b);this.queueEvent("upload_success_handler",[b,a,c])};SWFUpload.prototype.uploadComplete=function(a){a=this.unescapeFilePostParams(a);this.queueEvent("upload_complete_handler",a)};SWFUpload.prototype.debug=function(a){this.queueEvent("debug_handler",a)};SWFUpload.prototype.debugMessage=function(c){if(this.settings.debug){var a,d=[];if(typeof c==="object"&&typeof c.name==="string"&&typeof c.message==="string"){for(var b in c){if(c.hasOwnProperty(b)){d.push(b+": "+c[b])}}a=d.join("\n")||"";d=a.split("\n");a="EXCEPTION: "+d.join("\nEXCEPTION: ");SWFUpload.Console.writeLine(a)}else{SWFUpload.Console.writeLine(c)}}};SWFUpload.Console={};SWFUpload.Console.writeLine=function(d){var b,a;try{b=document.getElementById("SWFUpload_Console");if(!b){a=document.createElement("form");document.getElementsByTagName("body")[0].appendChild(a);b=document.createElement("textarea");b.id="SWFUpload_Console";b.style.fontFamily="monospace";b.setAttribute("wrap","off");b.wrap="off";b.style.overflow="auto";b.style.width="700px";b.style.height="350px";b.style.margin="5px";a.appendChild(b)}b.value+=d+"\n";b.scrollTop=b.scrollHeight-b.clientHeight}catch(c){alert("Exception: "+c.name+" Message: "+c.message)}}; + +/* +Uploadify v3.0.0 +Copyright (c) 2010 Ronnie Garcia + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +if(jQuery)(function(a){a.extend(a.fn,{uploadify:function(b,c){a(this).each(function(){function t(b,c,d){g.queue.queueBytesUploaded+=b.size;a("#"+b.id).find(".data").html(" - "+uploadifyLang["uploadComplete"]);if(g.settings.onUploadSuccess)g.settings.onUploadSuccess(b,c,d)}function s(b){var c=new Date;g.timer=c.getTime();g.bytesLoaded=0;if(g.queue.uploadQueue.length==0){g.queue.uploadSize=b.size}if(g.settings.checkExisting!==false){a.ajax({type:"POST",async:false,url:g.settings.checkExisting,data:{filename:b.name},success:function(c){if(c==1){var d=confirm(uploadifyLang["existsMsg1"]+' "'+b.name+'" '+uploadifyLang["existsMsg2"]+".\n"+uploadifyLang["existsMsg3"]);if(!d){g.cancelUpload(b.id);a("#"+b.id).remove();if(g.queue.uploadQueue.length>0&&g.queue.queueLength>0){if(g.queue.uploadQueue[0]=="*"){g.startUpload()}else{g.startUpload(g.queue.uploadQueue.shift())}}}}}})}if(g.settings.onUploadStart)g.settings.onUploadStart(b)}function r(b,c,d){var e=new Date;var f=e.getTime();var h=f-g.timer;g.timer=f;var i=c-g.bytesLoaded;g.bytesLoaded=c;var j=g.queue.queueBytesUploaded+c;var k=Math.round(c/d*100);var l=0;var m=i/1024/(h/1e3);m=Math.floor(m*10)/10;if(g.queue.averageSpeed>0){g.queue.averageSpeed=(g.queue.averageSpeed+m)/2}else{g.queue.averageSpeed=m}if(m>1e3){l=m*.001;g.queue.averageSpeed=l}var n="KB/s";if(l>0){n="MB/s"}if(a.inArray("onUploadProgress",g.settings.skipDefault)<0){if(g.settings.progressData=="percentage"){a("#"+b.id).find(".data").html(" - "+k+"%")}else if(g.settings.progressData=="speed"){a("#"+b.id).find(".data").html(" - "+g.queue.averageSpeed.toFixed(2)+" "+n)}else if(g.settings.progressData=="all"){a("#"+b.id).find(".data").html(" - "+k+"% - "+g.queue.averageSpeed.toFixed(2)+" "+n)}a("#"+b.id).find(".uploadifyProgressBar").css("width",k+"%")}if(g.settings.onUploadProgress)g.settings.onUploadProgress(b,c,d,j,g.queue.uploadSize)}function q(b,c,d){var e=uploadifyLang["errorString1"];if(c!=SWFUpload.UPLOAD_ERROR.FILE_CANCELLED&&c!=SWFUpload.UPLOAD_ERROR.UPLOAD_STOPPED){a("#"+b.id).addClass("uploadifyError")}a("#"+b.id).find(".uploadifyProgressBar").css("width","1px");switch(c){case SWFUpload.UPLOAD_ERROR.HTTP_ERROR:e=uploadifyLang["errorString2"]+" ("+d+")";break;case SWFUpload.UPLOAD_ERROR.MISSING_UPLOAD_URL:e=uploadifyLang["errorString3"];break;case SWFUpload.UPLOAD_ERROR.IO_ERROR:e=uploadifyLang["errorString4"];break;case SWFUpload.UPLOAD_ERROR.SECURITY_ERROR:e=uploadifyLang["errorString5"];break;case SWFUpload.UPLOAD_ERROR.UPLOAD_LIMIT_EXCEEDED:alert(uploadifyLang["errorString6"]+" ("+d+").");e=uploadifyLang["errorString7"];break;case SWFUpload.UPLOAD_ERROR.UPLOAD_FAILED:e=uploadifyLang["errorString8"];break;case SWFUpload.UPLOAD_ERROR.SPECIFIED_FILE_ID_NOT_FOUND:e=uploadifyLang["errorString9"];break;case SWFUpload.UPLOAD_ERROR.FILE_VALIDATION_FAILED:e=uploadifyLang["errorString10"];break;case SWFUpload.UPLOAD_ERROR.FILE_CANCELLED:e=uploadifyLang["errorString11"];g.queue.queueSize-=b.size;if(b.status==SWFUpload.FILE_STATUS.IN_PROGRESS||a.inArray(b.id,g.queue.uploadQueue)>=0){g.queue.uploadSize-=b.size}delete g.queue.files[b.id];break;case SWFUpload.UPLOAD_ERROR.UPLOAD_STOPPED:e=uploadifyLang["errorString12"];break}if(c!=SWFUpload.UPLOAD_ERROR.SPECIFIED_FILE_ID_NOT_FOUND&&b.status!=SWFUpload.FILE_STATUS.COMPLETE){a("#"+b.id).find(".data").html(" - "+e)}if(g.settings.onUploadError)g.settings.onUploadError(b,c,d,e,g.queue)}function p(b){var c=g.getStats();g.queue.queueLength=c.files_queued;if(g.queue.uploadQueue[0]=="*"){if(g.queue.queueLength>0){g.startUpload()}else{g.queue.uploadQueue=[];if(g.settings.onQueueComplete)g.settings.onQueueComplete(c)}}else{if(g.settings.onUploadComplete)g.settings.onUploadComplete(b,g.queue);if(g.queue.queueLength>0){g.startUpload(g.queue.uploadQueue.shift())}else{g.queue.uploadQueue=[];if(g.settings.onQueueComplete)g.settings.onQueueComplete(c)}}if(a.inArray("onUploadComplete",g.settings.skipDefault)<0){if(g.settings.removeCompleted){switch(b.filestatus){case SWFUpload.FILE_STATUS.COMPLETE:setTimeout(function(){if(a("#"+b.id)){g.queue.queueSize-=b.size;delete g.queue.files[b.id];a("#"+b.id).fadeOut(500,function(){a(this).remove()})}},g.settings.removeTimeout*1e3);break;case SWFUpload.FILE_STATUS.ERROR:if(!g.settings.requeueErrors){setTimeout(function(){if(a("#"+b.id)){g.queue.queueSize-=b.size;delete g.queue.files[b.id];a("#"+b.id).fadeOut(500,function(){a(this).remove()})}},g.settings.removeTimeout*1e3)}break}}}}function o(){var a=g.getStats();if(g.settings.onQueueComplete)g.settings.onQueueComplete(a)}function n(b,c,d){if(a.inArray("onSelectError",g.settings.skipDefault)<0){switch(c){case SWFUpload.QUEUE_ERROR.QUEUE_LIMIT_EXCEEDED:if(g.settings.queueSizeLimit>d){g.queue.errorMsg+="\n"+uploadifyLang["errorMsg2"]+" ("+d+")."}else{g.queue.errorMsg+="\n"+uploadifyLang["errorMsg3"]+" ("+g.settings.queueSizeLimit+")."}break;case SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT:g.queue.errorMsg+="\n"+uploadifyLang["errorMsg4"]+' "'+b.name+'" '+uploadifyLang["errorMsg5"]+" ("+g.settings.fileSizeLimit+").";break;case SWFUpload.QUEUE_ERROR.ZERO_BYTE_FILE:g.queue.errorMsg+="\n"+uploadifyLang["errorMsg4"]+' "'+b.name+'" '+uploadifyLang["errorMsg6"]+".";break;case SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT:g.queue.errorMsg+="\n"+uploadifyLang["errorMsg4"]+' "'+b.name+'" '+uploadifyLang["errorMsg7"]+" ("+g.settings.fileTypeDesc+").";break}}if(c!=SWFUpload.QUEUE_ERROR.QUEUE_LIMIT_EXCEEDED){delete g.queue.files[b.id]}if(g.settings.onSelectError)g.settings.onSelectError(b,c,d)}function m(b){if(a.inArray("onSelect",g.settings.skipDefault)<0){var c={};for(var d in g.queue.files){c=g.queue.files[d];if(c.name==b.name){var e=confirm(uploadifyLang["replaceMsg1"]+' "'+b.name+'" '+uploadifyLang["replaceMsg2"]+".\n"+uploadifyLang["replaceMsg3"]);if(!e){g.cancelUpload(b.id);g.queue.filesCancelled++;return false}else{a("#"+c.id).remove();g.cancelUpload(c.id);g.queue.filesReplaced++}}}var f=Math.round(b.size/1024);var h="KB";if(f>1e3){f=Math.round(f/1e3);h="MB"}var i=f.toString().split(".");f=i[0];if(i.length>1){f+="."+i[1].substr(0,2)}f+=h;var j=b.name;if(j.length>18){j=j.substr(0,15)+"..."}a("#"+g.settings.queueID).append('
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t'+j+" ("+f+')\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
');g.queue.queueSize+=b.size}g.queue.files[b.id]=b;if(g.settings.onSelect)g.settings.onSelect(b)}function l(){g.queue.errorMsg=uploadifyLang["errorMsg1"];g.queue.filesReplaced=0;g.queue.filesCancelled=0;if(g.settings.onDialogOpen)g.settings.onDialogOpen()}function k(b,c,d){var e=g.getStats();g.queue.filesErrored=b-c;g.queue.filesSelected=b;g.queue.filesQueued=c-g.queue.filesCancelled;g.queue.queueLength=d;if(a.inArray("onDialogClose",g.settings.skipDefault)<0){if(g.queue.filesErrored>0){alert(g.queue.errorMsg)}}if(g.settings.onDialogClose)g.settings.onDialogClose(g.queue);if(g.settings.auto)a("#"+g.settings.id).uploadifyUpload("*")}var d=a(this).clone();var e=a.extend({id:a(this).attr("id"),langFile:"uploadifyLang_en.js",swf:"uploadify.swf",uploader:"uploadify.php",auto:false,buttonCursor:"pointer",buttonText:"",cancelImage:"uploadify-cancel.png",checkExisting:"uploadify-check-existing.php",debug:false,fileObjName:"Filedata",fileSizeLimit:0,fileTypeDesc:"",fileTypeExts:"*.*",height:30,method:"post",multi:false,queueID:false,queueSizeLimit:999,removeCompleted:true,removeTimeout:3,requeueErrors:true,postData:{},preventCaching:true,progressData:"all",successTimeout:30,transparent:true,uploadLimit:999,width:120,skipDefault:[],onDialogClose:function(){},onDialogOpen:function(){},onSelect:function(){},onSelectError:function(){},onQueueComplete:function(){},onUploadComplete:function(){},onUploadError:function(){},onUploadProgress:function(){},onUploadStart:function(){},onUploadSuccess:function(){}},b);var f={assume_success_timeout:e.successTimeout,button_placeholder_id:e.id,button_width:e.width,button_height:e.height,button_text:null,button_text_style:null,button_text_top_padding:0,button_text_left_padding:0,button_action:e.multi?SWFUpload.BUTTON_ACTION.SELECT_FILES:SWFUpload.BUTTON_ACTION.SELECT_FILE,button_disabled:false,button_cursor:e.buttonCursor=="arrow"?SWFUpload.CURSOR.ARROW:SWFUpload.CURSOR.HAND,button_window_mode:e.transparent?SWFUpload.WINDOW_MODE.TRANSPARENT:SWFUpload.WINDOW_MODE.OPAQUE,debug:e.debug,requeue_on_error:e.requeueErrors,file_post_name:e.fileObjName,file_size_limit:e.fileSizeLimit,file_types:e.fileTypeExts,file_types_description:e.fileTypeDesc,file_queue_limit:e.queueSizeLimit,file_upload_limit:e.uploadLimit,flash_url:e.swf,prevent_swf_caching:e.preventCaching,post_params:e.postData,upload_url:e.uploader,use_query_string:e.method=="get",file_dialog_complete_handler:k,file_dialog_start_handler:l,file_queued_handler:m,file_queue_error_handler:n,upload_complete_handler:p,upload_error_handler:q,upload_progress_handler:r,upload_start_handler:s,upload_success_handler:t};if(c){f=a.extend(f,c)}f=a.extend(f,e);a.ajaxSetup({async:false});a.getScript(e.langFile);a.ajaxSetup({async:true});if(e.buttonText=="")e.buttonText=uploadifyLang["buttonText"];if(e.fileTypeDesc=="")e.fileTypeDesc=uploadifyLang["fileTypeDesc"];window["uploadify_"+e.id]=new SWFUpload(f);var g=window["uploadify_"+e.id];g.original=d;var h=a("
",{id:e.id,"class":"uploadify",css:{height:e.height+"px",position:"relative",width:e.width+"px"}});a("#"+g.movieName).wrap(h);if(!e.queueID){var i=a("
",{id:e.id+"_queue","class":"uploadifyQueue"});a("#"+e.id).after(i);g.settings.queueID=e.queueID=e.id+"_queue"}g.queue={files:{},filesSelected:0,filesQueued:0,filesReplaced:0,filesCancelled:0,filesErrored:0,averageSpeed:0,queueLength:0,queueSize:0,uploadSize:0,queueBytesUploaded:0,uploadQueue:[],errorMsg:uploadifyLang["errorMsg1"]};var j=a("
",{id:e.id+"_button","class":"uploadifyButton",html:''+e.buttonText+""});a("#"+e.id).append(j);a("#"+g.movieName).css({position:"absolute","z-index":1,left:"0px"})})},uploadifyCancel:function(b){var c=a(this).selector.replace("#","");var d=window["uploadify_"+c];var e=-1;if(arguments[0]){if(arguments[0]=="*"){a("#"+d.settings.queueID).find(".uploadifyQueueItem").each(function(){e++;d.cancelUpload(a(this).attr("id"));a(this).delay(100*e).fadeOut(500,function(){a(this).remove()})});d.queue.queueSize=0}else{for(var f=0;f - is released under the MIT License -*/ -var swfobject=function(){var D="undefined",r="object",S="Shockwave Flash",W="ShockwaveFlash.ShockwaveFlash",q="application/x-shockwave-flash",R="SWFObjectExprInst",x="onreadystatechange",O=window,j=document,t=navigator,T=false,U=[h],o=[],N=[],I=[],l,Q,E,B,J=false,a=false,n,G,m=true,M=function(){var aa=typeof j.getElementById!=D&&typeof j.getElementsByTagName!=D&&typeof j.createElement!=D,ah=t.userAgent.toLowerCase(),Y=t.platform.toLowerCase(),ae=Y?/win/.test(Y):/win/.test(ah),ac=Y?/mac/.test(Y):/mac/.test(ah),af=/webkit/.test(ah)?parseFloat(ah.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,X=!+"\v1",ag=[0,0,0],ab=null;if(typeof t.plugins!=D&&typeof t.plugins[S]==r){ab=t.plugins[S].description;if(ab&&!(typeof t.mimeTypes!=D&&t.mimeTypes[q]&&!t.mimeTypes[q].enabledPlugin)){T=true;X=false;ab=ab.replace(/^.*\s+(\S+\s+\S+$)/,"$1");ag[0]=parseInt(ab.replace(/^(.*)\..*$/,"$1"),10);ag[1]=parseInt(ab.replace(/^.*\.(.*)\s.*$/,"$1"),10);ag[2]=/[a-zA-Z]/.test(ab)?parseInt(ab.replace(/^.*[a-zA-Z]+(.*)$/,"$1"),10):0}}else{if(typeof O.ActiveXObject!=D){try{var ad=new ActiveXObject(W);if(ad){ab=ad.GetVariable("$version");if(ab){X=true;ab=ab.split(" ")[1].split(",");ag=[parseInt(ab[0],10),parseInt(ab[1],10),parseInt(ab[2],10)]}}}catch(Z){}}}return{w3:aa,pv:ag,wk:af,ie:X,win:ae,mac:ac}}(),k=function(){if(!M.w3){return}if((typeof j.readyState!=D&&j.readyState=="complete")||(typeof j.readyState==D&&(j.getElementsByTagName("body")[0]||j.body))){f()}if(!J){if(typeof j.addEventListener!=D){j.addEventListener("DOMContentLoaded",f,false)}if(M.ie&&M.win){j.attachEvent(x,function(){if(j.readyState=="complete"){j.detachEvent(x,arguments.callee);f()}});if(O==top){(function(){if(J){return}try{j.documentElement.doScroll("left")}catch(X){setTimeout(arguments.callee,0);return}f()})()}}if(M.wk){(function(){if(J){return}if(!/loaded|complete/.test(j.readyState)){setTimeout(arguments.callee,0);return}f()})()}s(f)}}();function f(){if(J){return}try{var Z=j.getElementsByTagName("body")[0].appendChild(C("span"));Z.parentNode.removeChild(Z)}catch(aa){return}J=true;var X=U.length;for(var Y=0;Y0){for(var af=0;af0){var ae=c(Y);if(ae){if(F(o[af].swfVersion)&&!(M.wk&&M.wk<312)){w(Y,true);if(ab){aa.success=true;aa.ref=z(Y);ab(aa)}}else{if(o[af].expressInstall&&A()){var ai={};ai.data=o[af].expressInstall;ai.width=ae.getAttribute("width")||"0";ai.height=ae.getAttribute("height")||"0";if(ae.getAttribute("class")){ai.styleclass=ae.getAttribute("class")}if(ae.getAttribute("align")){ai.align=ae.getAttribute("align")}var ah={};var X=ae.getElementsByTagName("param");var ac=X.length;for(var ad=0;ad'}}aa.outerHTML='"+af+"";N[N.length]=ai.id;X=c(ai.id)}else{var Z=C(r);Z.setAttribute("type",q);for(var ac in ai){if(ai[ac]!=Object.prototype[ac]){if(ac.toLowerCase()=="styleclass"){Z.setAttribute("class",ai[ac])}else{if(ac.toLowerCase()!="classid"){Z.setAttribute(ac,ai[ac])}}}}for(var ab in ag){if(ag[ab]!=Object.prototype[ab]&&ab.toLowerCase()!="movie"){e(Z,ab,ag[ab])}}aa.parentNode.replaceChild(Z,aa);X=Z}}return X}function e(Z,X,Y){var aa=C("param");aa.setAttribute("name",X);aa.setAttribute("value",Y);Z.appendChild(aa)}function y(Y){var X=c(Y);if(X&&X.nodeName=="OBJECT"){if(M.ie&&M.win){X.style.display="none";(function(){if(X.readyState==4){b(Y)}else{setTimeout(arguments.callee,10)}})()}else{X.parentNode.removeChild(X)}}}function b(Z){var Y=c(Z);if(Y){for(var X in Y){if(typeof Y[X]=="function"){Y[X]=null}}Y.parentNode.removeChild(Y)}}function c(Z){var X=null;try{X=j.getElementById(Z)}catch(Y){}return X}function C(X){return j.createElement(X)}function i(Z,X,Y){Z.attachEvent(X,Y);I[I.length]=[Z,X,Y]}function F(Z){var Y=M.pv,X=Z.split(".");X[0]=parseInt(X[0],10);X[1]=parseInt(X[1],10)||0;X[2]=parseInt(X[2],10)||0;return(Y[0]>X[0]||(Y[0]==X[0]&&Y[1]>X[1])||(Y[0]==X[0]&&Y[1]==X[1]&&Y[2]>=X[2]))?true:false}function v(ac,Y,ad,ab){if(M.ie&&M.mac){return}var aa=j.getElementsByTagName("head")[0];if(!aa){return}var X=(ad&&typeof ad=="string")?ad:"screen";if(ab){n=null;G=null}if(!n||G!=X){var Z=C("style");Z.setAttribute("type","text/css");Z.setAttribute("media",X);n=aa.appendChild(Z);if(M.ie&&M.win&&typeof j.styleSheets!=D&&j.styleSheets.length>0){n=j.styleSheets[j.styleSheets.length-1]}G=X}if(M.ie&&M.win){if(n&&typeof n.addRule==r){n.addRule(ac,Y)}}else{if(n&&typeof j.createTextNode!=D){n.appendChild(j.createTextNode(ac+" {"+Y+"}"))}}}function w(Z,X){if(!m){return}var Y=X?"visible":"hidden";if(J&&c(Z)){c(Z).style.visibility=Y}else{v("#"+Z,"visibility:"+Y)}}function L(Y){var Z=/[\\\"<>\.;]/;var X=Z.exec(Y)!=null;return X&&typeof encodeURIComponent!=D?encodeURIComponent(Y):Y}var d=function(){if(M.ie&&M.win){window.attachEvent("onunload",function(){var ac=I.length;for(var ab=0;abh5t|IV(Yk>pE~otwY{CWoUqCQu+Igg8DDhr|j# z!s$3GX*U+gmMh6QcxefNa1;szNGMRi+>|R^<)(#lm!q;>k{*=aExk|La{B!~GrN); zCw$)b_x|xSeRk)WdFGjCo_XeZo|#oTpp-nRD9>zFDwxs~oTezsd6jQ4MOmDVTlMWt zE&ArZWPhd}*a@?Hv)O_A1q(K9+ElygsM=I|!-69hEn2joZsCH33+IDker8L5*4RA1 zKXdr(C4xbdnTe$n1KC8XUnks%rUtVo%${v?jmPp#2L{tg!7?6OU?$Bzvp<_zaAfU~ zU=)wlTd8!PkzHa83?vgVgV-(DJU`Q$ik-d5*l5nTl18R?@qz*&^~ol(NpndL6;Ow)1cn9u~grJfpjW97=ug}Sc%TXU5LfNU^JP?^qT1< zgZ*dsr#8tU3bjNNOPfYEHJ-w$qxPiHzhThWU@mEH6K#21$Y^BEC993JzVO(vzOb%t zkrab!7cbaH+jb2WaEa0scwbwrG^%4`W2gHytgr{5DGgpl{5^I1-&g2Z@$dROPHE{H zNT!Uq^6jc8)+q`q6)SD@nMW!CrB;~^24fXpr^jdXxSAfylPFg_NDuZIJujlid!OQQ z3AJBE=-&ywgG!%J>3w?KK(2pqXxyG&FX$;?>c- zs=2YVr=@jObH@}p180@;QbMFeGTzfKv{^w~TC*zB(4;S{U07RJ3IT|D=avC8Qzo=K zXi7D@o6P9ohCpMgZy;%A&7KuTe>`cXgXpnL%&WBzy9aAhVe_Dgw85f-wCZ9}oj!h= zbWfr`Zf-7(44C~+eW@6($0XWJ3HgSO!B`B!`z%MM(q$yQz3d@O4BOenl3+E21(wLg z9?T|^8MmmZu#LzEwkhS8-l3dS zw25eudjuYYdNHZ2)E+iLU%^Hkv-fu(@WjM0C$fgFQCd$*&q$B-e^-0gdteg9VSmkj-^7E?_X6$Sr zTc@G?WJsKj?3ScC8C8P=6C4BYXg$5TCvuX#dbA&;D=QHSmlDk^(&6gXj*iy0_97am|*Fp#jd@o$d8NY*o6FI+Qh*+IwNb=G&dEuoZj4y>7LfvEGAb) z3o4dTuBcE_X`|TWavqZhi#KpyoWqJ(5+gfob@T|8ib$qUlxLp^m-nefxlDOjc}e2h#mrg|Jz)lf^En8nXpUj7?FN0WbXzzsXUo*PVJ@< z-%=Q14K|zfDy{uiiXy613iLTyc;E?^SJ`W1sJj_&$@8lmAN(62!708$hf$TWpN&=` z=Y2{dp6#v3jGtJgEj)!DNBSwYu{%MfIHb3a^ONOYl%YnBp9!wQlMJ?bv+XHn73r&E zO><*wOKY>-z&+T=Z4rdTNLO1^x#I_Af>Umd3p1e!lMFk_uW9>QUt>dCWAmz2<9ByQGghm$ z^EBIDGEyRIFzG0+qR4YZuso%XDbVVNI#Vl+jYfyqi!x9M1@)wz5LY6zKcPG?9KR@( zEtff??BUI(q@LU&y($q5G9u;HV3ukk?mH{flM=N4fqXYtpONSALw~UJbC6b*;?(H$9%%PSE9ylPAhGFy<{^m&~GmerKNY*L$=QnY%mbSjlCX>RLmZtrPnZ&=+N zfH{v#iaatq^+>I`VHF!p9v)8b(vX~L;H5)R^64^duz}GjJ#7QF2Z+bVS((zN$ z#(+O-MD390CwIRgjfIbUqG-m!CL_EowU$9Aad=1blwPF3-VNy5n}}t6QFB9rf_>5( zPaB)sLCsB()g^7KAPjc*QS4fj1;>eojKILF)7@ZG;|!bU}0U|F$?Himre9n zjXUnv%X4V;_{t{vmOH%>iwFBL(}#>F62^($l-Ovygc+a18}et9F|_xh+JnX3j4hS@T0*_HB@~Lo9huPmJt^q2v>$yQ(NO}NG5f0AaP~W zgQlHoIVYkic^&Dk{fVsZjP34hUESPHn>C$P&CR}esx6i6g|j?lf)IMzOrR^Y0Yi?L z&~CGHl4(vMqi@1`n0kLIt7pt?z0UijQ+Eqp948j8UZ1GddLg+kEA>qXE~!m={y17Y z+wM4C)B2pqn&!5-cHh>fdfkww}_#y zR$oROL`krz*C*SZ#^nX|`XTxN5)3mA>9f5^mvosTL2H=-q%fw77V4031LphY$E(uY zZE_T1CiX@gO4KROs@FX-(0Y<)|AuUDjm?U7tk7<~-kCP~Gf4xxbb~Hw^%%Ch9@Mj` z@k8?HU^Gf+SE*w%k(zO$*&NBe%2Z!3lCq*!HpsiSdY#qIo!A*2S|hqs%=ay=%~xZ+ z=-hqOe)~F6XgmjbNms9z*V^^OpkDWqMNu3&Rpz0(ouJj{wWw!%O<{K#T{=-zS?N@t zsE-S?tJPruq#RP8L#`*mwYIi)PLb&rT!fI*<|ekDK1ZLco10^%8P8zlDR2@u(L*QW z)aR&kYsFQJTp-uLV5WEGzRcsr8awhpLkkMpYAH)MbaADmQ>3arRJ0^AqS5HrMHr_E zQ?;O|`&^#R1cbmz%AIRvgQ##?9j=mK-sf_JEa#Z%lrFYoZOz0wh#991PZCE>+ZM3% zm;cY%>Zl)gWkb!0exaAzrTeEZjA)2`f$1DTkTnPNT|$_C`Z5sL2MQKcFf&^0TH8LH z+Il_URLK>u*H=v#K|~m^7uQ$B(`MCyGG-%9uU2o^cX_cTMV1VJ@AgE+?N>=N)=iwk z>-B@}wUc*fqDxQFN089O=9B)%!mXy9=5uB9NTD?5LGjz=Oo`RoB`zpxwB z)+YNvpm)f|@lM=Xm7*>)3m0^A=1yR}czkPHO3DgTu`e2vTkI~FWUX$8NAjrgRPD_D z$(|p0daa&6{W{!i(#e9zo=Bdk_F$V|tmu-ah~c6GGlW$P4h*EF4Hvsoku%j!+OLzH zR?JTx!fgt1rYbbL#Y*{*ikcR3xwuE(?;|47!Kx(D-!otbPjRJ~k@w7T_3Wsp-Q3W; zdBC^s%uLO>fa;QLY86Z(-DqS?o;H!=#Z1?_Gvo8zeU#35k=kTTBpvQVrp;(8ofAFx z?C80D(Q`LM=d!5U7gaYzna;v)WQU3Dp^d4*WL)~Wc-)RkGQ^3{2V;|mQLj9F*Xu!w zm-dmhhe$G^;u?EGMOBqWw03jGMJfu&467$Ww^==d>7;uTU5$8p#SN%mTuOEHnr2o` zsj;KOpDEP!X8V$KSSTCJm=vw#-QV(}t6Q>0+dzzDnvz&}Gu_d%utZ(tZDfuHRDjgW zF@~}tKFD4222|OSNN2LPh4;%PZ{4qH*dq()jz~twmN<>6_odQKB!!iZ^O1*j_Bxo| zvDe6e!tBp;IC8&(+46~XwCKQ-7Y=#Vej6!13xfQXDN4$VqvyPRG-~hf%>GyWU~>jLIglEx5T*l z)#`eOV{G;k!v$(E`*J~*SGY&E&Ym!Qy`GOidMYNo7bUmi^0&2#`Ca{Vk+wnHvc}Fv zE*mo!O|+JxUD0CD@uzmbY}f49&gh&{lnaX$P766{u0}Fr%59Zj(tI9R`-KDd-G5Kf zt7E^h>Hj84saP`m&X1?%x60ZB4P@&owgu-$xI{ZRmf&EV6`uwomM1e9h4GZah}IhE z1f2ykfx^e{)h3QJao3tiN2jMxl!MEYsi=_@R!5)TaR4}>96LR-sUI2ifSJy2@tETF zDVRc&!CH59hc_?D?ccJT#6m-mNu`_wh$&SkG@Pm6IyGr%bk1(XoKq-~-Tj{u)z>0k?Xv)UjgF%%=~g!+JnPOtv71%9>hR}}^&06$$k&i%JubR) zE)~DSfp&3hHeK|{*U;U5pf43qSoV*Hn)aSVVv`3sZROx?|<`rQhUJ#6xim|O8)sZO6f{VH|(4t4s~>hx>W>DQ{$18!yd zZZuB!yURJ#)IiV^s;rs>Hr_H8oTmAwPxY2EEjXj(ps7r|RpU(Ms*9^`&OBV@T=jC* z$2C7^C0s4#Y8h9-r-HKpXF=|&lacd^zVUIB(^ACFdt`zKZkJoVRfv z;l7hOZ|A&&^G?pYIA6>8DV(3m`DvV=&iNUfpUHVQ=j%A{;e0*k2Io=EW1Po1H#xUB z-@th<=Lycw;{0sRlbrW)-p_f8^8wDk$a$Lc4Ch(S2RYx!`6kXcbH0W1b2$Gm&d=ri zOPqh1^Yb|0$~ZqCunlkl;6lK5z(s(I0ha(S1$+f?8Q^ljR{>W5t^`~K*a5g2a1G#E zz)rv}z;%GH0j>w!0JstGb-+!4n*p}~h5)w$ZUfv7xC3w};4Z-3fO`PnVBCE#-uD6S z2Rs0Hka2A{;=5O19%be65wStzXEs_<++?K;_Njrcpcbx0dD}_1iS@!8}L0q4loR%MgXHIe;@C6 z7%$(8@(%z%WW3_Xc>e_O9^j{dp8062~LW-{O5%(oTD zy+!w;?;8PM*SPN{yl)2F0vH02 z<9h(`AYeD(A;4pR$2H%1%y$y=JwYQsiJGSY&uG3B^L>%|7GWsZxArK+eI7%+0Fhn< zyrgm0%Yauv{3_rz)V+cCn|OZ@FbvoM{QKzh4qy*pFYw=^{ttNnQRC{LH17U0;4gr` zqV8|n40VR)`%u%MBF*TGF0_H>2P*htk80SH+W9Wu z$LQmC^@<;DvH~!s9_XRjREnaCw@cuvXs{n{dU*1vC~-y6nAhi0ysV^zF+bIn(4#a@ zCmv;zoekjYbfIySaw4HexsM(dVCwSuP*z>^giYE6=vTli@(+Q!@(-eu4KCTLib=|W zD=HMP$~64P99E*zp)Tg?W%TEw{?u0C#luCvg$>wzg;FbskGCL~c-X&~6$>E8@IihT z^HtCs=}lwiYs-T{`G#KdRI=5cv&&~MkVMPMNK@s?xIfXP_!Q_om?^UlLCK}* zM0}`6@y%j~F{S2krW{($l%^w?QaOt$N6%(T?Hr~|nX4#eN)1y2^U%w!g$bQcU2B=r zxIj_rlp~okbs_u8SS+}lKn#{JWzvaE znY@%K4GmPWj4AUQsn7%>kJhXx-qO+*rX0VVDKl3nN~pB7RZ&(dCoyH^DyAH~nkk30 zVUB)(gega@p`Ir*CD_iCMIB5j?-WCIk%_Kl%92xna_v;2I*lpIPiM-kGnjJZnSwz# zX=xo(=Jhb;*!4^~$Y9E0QL2nFWnr8;nZUf7g{M#3z?3iaQe{GnaTcC_?QEu$C8@HH z`t_6YQz(^a19+BdUt~&4nkjmQNU~xH2JtM@Hd4hVdTbWlwlHP!In?{Vm~!H|RR1NW z)PI>N$DJn_ZG|aSlxv74%Hi7>wO=5f7g9ab5HOUgi>O?oU5xUKOGGPTiPHQPJmy@6 zN9pBE%=@dd&lQ5?N+!m?ieAbNJnKqJuLkk-Yw)N*cv0$hN)p5?WyN(=4rpIPx%GNk ze}n9FBdQjB9gkyf!XtFE;C>5=%MkdK>RZJCx8Zp^Q|=%nsNG4gkam~kb2mw++ykHD zSI$(t<-QWdDES8Zn)jk5q}+#M?0!6=58x4h5D#m&oXSIZJLoAa({gpo zg_HOCe7U;ZGG%M!JIjTW_xl+Nnx^^vhj+itYTmKlW;<&3438LZGq37p)$wvTv2|~= zY6UeQb*ZY~U$OpsEb?`x;58iCK-F%lE(bo#=(ihD>v3vl7uRyCol1SJ91{(*jJsK( z-AnD0^1Wt{YxI3yqaVS??_EF4B9{rg#I5<~-(8WbJEi8GI+N*JEBiG0a;-bAd(p~8 zO7C&&>buKUmMOjU>*mVB+;vCG!qMx(Yn9$`u2osTXje@TK6&o?kW&bt;HJU|L&+;k z)+iyI5N>^+?FzwMmal(@h2Le7J&c*q;$R-^Slit65FR3G^*iIpS82;QpoK3nR_kE>e0V@usd=+)yJ}^X(mOS0O|{0@{3+E+WUH!5tXiq5W;K!X zRhPsg+f)UmS;hrK03*N9es8C@P{(+cO%)?x39XA%>tfZqMD4wq<-$ABd@~yg?^1_) zFDb&W1Kv(N4D8|2{_MTdVUZ(cWFG4R@!?&wLIcxq<_zrN|Sk&}YH3F}m zvrY{nQOt$!B0ko9iQG+Gtc?=6M@2t0MRtwT?iFhI8|r-_Y_wSc?4{Yg=LC?Yok@0F6gqCkF?+ET%K6FDnU zt(0OgqDtiZszrUTn$UNL=zBdTc|EMF)FXReUl>{|>b^sCw}?8iyCy_#LkxP~t`NKi z6p+Ysy6=F^g|V;RS3PIu)#ECt=V~!%q1QG0_G-)bau<4CGeN1>3Zv5q(aF zFhYbqViEmKg8s_|dVdl9%@ZZOWnT%0goIxzNLW%V;jI%TyiJVQUKp{oXvEtmj(CR{ zU<(UOv+2tm`kZyA8o5jMDA3=%&)P;>SYU?TwcP32?V8=G1$NU$Rpm0OU^Cd4);oXwIm3%;j%S&%9y|WaB zXG?!k`Wq^IR(eg@b!8|#SoUJst5o<|*=J?j%2Bwf{E_mhJD(Wwp@;xM4mC7*E ztV-o=%F>il9IE_B=jsYm4;~JU3B^1l6k}bEOm81;7?)G3REDFN-<7MIg@Z^r60eG% zXfi=T0uf%FvzA95QdKH<zwlO zIqM5fc}31z=9I%ZYqnFq4P0-`bG;GRwRtR>v(9kJXXUJzQ(l|1B2IZ;&YIisv#A_7bl(6Jend6ZB(ok? zha!)tY&o`wSoRCVvM*?<;E}#De2C=Mfs@2K^6fKZy2H*y$ zW^i!Nu=V(ahR4yccVzVb8gdtNN2`^5M7k33XLkrk>6~=~)2EfmLgWeLO1g0a97r9} zU_akh&9I@V3hmg^Ppa#0va?puV^inC&pOixKc^0j428d?4vkKj(#WVilaLG3pGnjI zwn}3Rg`Zc68vds_%w|VU)Id~8L`$&yb}+qC2)Dx#ZU+fh9hYK}t?ppL)8wq}wp=@e zT;NirflDcd609R9s;HYpb>*^d*m_EpwUgZ*pZ`46qO+}y;sN)sqnen@x{K|IxudSA z+qjE)-Co!5dav~cGaiD?d`BG?N_i3LXn9&yhQcqAdK|@MhHbSx&0M+Jk)z0QOmTCc z|23?#zLm#Zv-e;j_XeipNR+d}qt-KE_^dh|`Nyn1feJ+#-7&a#6fM?s>ZBi!jg5pB zQl9mypc)FlCbZhk#W`iz`WC9ct%li3?jqi~s4KFB1x`ngnwZ<#yd&m`x}zRrv)AKw zLp7MjTXGt2s!4s zkG{1$#%IU8b7H>PF@G-neew}lWUS=99qZTqMTeJ4p?QCDe6G1t9t4y7)^VDBi6S~{PM z=^d5IL*YHNrNes*8jI(wNxCrW$hVm*@Fo*Oy8}-##nV8$Im2>&+qy3{q_8X=oxkIz~V*SwAhnQ_-rf}{-wR}zbbZF zNvazu3S~20NN%2FGP%ihhgOCZ0|~$i`?}*|+aa$QcimwkDN*~7HR4D}*BSG{v|6D{ zC?t~B{OyRh*2Zyl8@Gcl{A=_~7S^vpWL(yY?w6=uw5@zeRoAk}%PQMX2!CIM@RnEL zh$)66gfD03T+Mbdirea|$OC=KYpTM0%E2_NtC(}A^#3O9ANDKlasL--+t2EsAnPHN zOk64=M)^DNV0vXnv6F|$>na^6nRjd4CPH5~q{ z^o8NSjc;rmj=YGK4gZ~NDnKXK@IR;so6sqS-Ru&64^D3{33cDDnov+UBl5q)a7`Mp z;a#DP8ADC?** zqfsb-ly>AusD|YEP#qQ0e6)}3qeAkJrQ`uA`Dl^cq{zUl$Q@xRJ|Snzo2p`qxikE! zS_R`1L<(uNUKr$V=`Ba~`+~2Jjg9J+7a?aDr{Vu!Q-PTrsv+Zg28KIlFKYG-?+kyY zP7h-dDu!`D74hhy8VZ4PM`a9oASA-zT*`ycAutosac6i;osNa>KCRm~jAM7pX^fgw z9E(?s=+jP9lo6SByvgpb2_oRlwei>4{UJ#u@z>b2Ss*UjBqL&rP>Q!RpW^KlDc-CV zasWj+tQ6#mpow(s=4Ui1ZRf=jCZih~_*&;v$mGgT`hMEE`X-tU$1M z&{zzDy72^c1%i2l#yqS`wd(fyHXl+qnyKbU zJN*b8BobD+lgK{xN(?~zG3r8?aYbFyKqvixjIs*4)K>_jfkuuXjm(BG#7U+m=qD#3 zSO1#bAwdXim^SEJDv{69-100jELI+?B?OAPkXGN%)LAQNm1e6*4X5XcNFHpK(UHh~ zj7f?)l;RzNbsST%m5_ymJT!6`2?-sXa>K?I^} zVI>V_%+HM&`5R9(&C|R-|NB^NO8COtw7u)!R>K!+%h=Yp)tGCz<$J2K{hi^cE6iGQ zs){1DUySyaVHFuBwx&*l(w0DaB{n$S#&nOUQFpaMN*PhHRNbTMNXw|oHp;ITBXlN| ziQOK-@v&LGw|(ysTfKuZJ{rDUo9-i%1`;?JstbQrRLq}B6=hU$ zg*F|7&7X#f+(?w)X3W5Z!=$f}SWG*$d{mFF{Pzf!98RMak@ zS}xRjCeXS9+6MGUm&admyGj9jkN5~w)`tkIZ>LW|hi>b0nQT~GVH#nIyTWN?C{_~| zzEXq2zptv{tF)GPNG*NP!(Ix~+hEI!Vaq16<M3!*bR5;$ZoM>JQlm>_bNPUwg%G8-AcFnos$mNfrUXgpn9A-jR7Fu)yL}c%ZMCS`M;6ge{P7lr@4%2ehG1I+t zCAVA=H}O<+o~&7`2%i>NMYjOQ&{-`bw%t3l3uy3R@fGMcHX^d@@;fma&DxZR$>v2F;7&V+x=5@*>rd4^ zBSi2s%JN!AjGxN^wlU)uBv!o(9`P{JWovG@X0H()^=d*Pt+^4Pw=%-T1ddnj8zE$?h7^V- zDiYOuwZi3|%xvGJ)IxNbZ0D+xCvf-_+4Fsx%$`ql!Jnu+Ll5RSHHIJ#{o-~DWXy_m~ip^d+( z#FVlaYO}AK{!Z>%3#?Q2b8H*0mckiMoZOx(-WOZN=j`yeq&bGaoo{OtpSf{tTh5OC zk@}uWXGzyT;O)zmf5P+oln>x&UCO@@3j)egO{RhQQTNy~4ezQ6%AM0T`@Yb@G7A(} z4tvFM!ZjLoQKC!{k2bB`3In7c%63 zGsqv*P?9{?Zbsd1k%Cz!+B*?CmuWbIewm~{TACpu*Q^ypzBROG1WOivOKtf#vZcLY z28prZE9t24XLYoi4YmA7Wg;1ixn{@Ql+t?Su?tD<(a4jYp$~jfR~7c{te9KmwI1ZP zo~TC-H)(WiEb4|7jcz1-A83?Im+jTJ({cDiHRkRPtPEh6Aiw)awLVsjPiS|vJRp^9 zof)DZ_|UIY(5YIXOS7(RNV6i4Aj+ejgTW^keqD>YhQi+^tM3wdwzPYcTRv4;=rH7D z-JhwzK2sTy0dXj)YKSt2h1?Uo7kL5qdT5*x8l`pIC~rBVjO51{u}9GNGs4J3{trq1 z!{iVM!f$IWV=Aj2+fCj*oYSQ1e;clU6j;kvjSU&^tAS^c*M6w3{1CB>R92*i#p5I# z`FuT8U~SxV-jI!O-z3y?`%L#M57f7vScyEl2 ziG8$2cz~ybIwRjn zE;(&#R`fd5(>LbA747>z3srWJOL9=shJ ztZPK9&Obaejc%pyt%Ql>MY}0;9Q~!)VlDG}mUNgU<@OMY)o$|F(;- z48!5~ZByEl6Hdf9T6{w?g#Q{DmCkEBqMYLaYiM^>Or}FKj*;WMA7!(!e2L&(`Yx*~ zrMyV;l{xp(Q5WrX@hNJA1lu(>21T`c;D9e@()H0r;P#k%PR!FqK5kgAOp@|{XG^+Q z-Ws$C5l5vD5i+{5G~_KHBQ|UKY$&t)B8?8aQBTXon%Z)a#zX}UthV5&p-&6;J;Nvo zbkEora&0=BucS)Ox8Y++UG@Wh-%9prSnYp@(qtd&f!t(3XNnnuFytzWU<30{c3EC7@y&WUcMlF zGQ8X{`M9ZhA2&QgeMbs?$)Ek)_GjpPCSxwQ2iZ|89p}2~AAbZKt1Lg2&FsC03~ZeW z^E*CQx9(;7W$?>v-D?Qj#%pZdo2>dX<4v~iEmr-h@fKV62CM$Wc!RBbg;jrSyu#MK z&Z<8$UMChkE+}#VDH8MlrxyMI^G6o=YVifvzqDnnxDN8Ir*22&>caol!vE25cDAn6 zs+E?jG*%sG*?|yI{YkY8+g%+3vBA09zf0Wx#9Z?3!DJ&8NJnuFX;pGvO7COxI->Vp z@m9khX+!J1bk+Sbe2a72{j#_LAL@OC<-`SX??ZxG>)nkb!c*ABkFfCLc%13x!yb4@?FNzZ-jC&v|vFo-a?N%_$JJfKJKiLm(Y*V{xdb$=OH9S zekP(g3rc6kEdl|VrGgAQH@wY7i$lh+!M5e@Ax#>yIN- zCIJC;CZZ@}0|W&uLoWdl7*Vi{*b&jOfQoHU(LvN18;&~8_?;UN^?7E!@ALluTJN{k z7uffnd(J-l?z7K6yPSKIWT0*X5DNeh1bD0K006$%?2!XtfiNM_h2iZ($xctp5V^oB zSHonnSm0u9y<)`*s}=TEd|{Hct+TVUwT+#%ot-7buoUHFh&kDo86qP?H;RmcH&+xd z$rQ{DLqyu_UUsPh+0$^z?u zk=}nM&xH7CaSAepX|g#=h_~jZanrdOVi6RntxTi|@h*vcVLC_b#t{h8c<~&RpmnyT zD48Fhx`LC%wM<0CyTJMj;{R8c;K+i4{_9CjPyam6K|zq5ke9_x@DcLUW#j}Lp@_@M z5pZ1%8C(%RQy9-RwElw4kIzJh=I`wWE36WD2`)}{PWE%>Ioo-9IQe+fZEcQ}fRdi8&eZ+$n0j{{gkHx_+h>BIG6Upich(;PD?w{Np@W zPpwur3h=^w`t<2ISrM*e1Tf>d8C;4j0LMYFtRi`8xg%=pIxI9!6qK7tFd!y6=99O# zH&7!tm8)-cSG#=P!5YlB=9>auYvq`{-l2Q$HrD=1SHOI=?S?=nVZ9DUugMsE(l|C3 z01Q}%DEsoo$((dbATKFd420k@7z65vE3zLsfmw?^j=PSVC7&qYDL*VPkJrId@eA?h z3jPYO6?PG>5VjF7Dn3=*t9(!8Zxt8SNY&Mx8EY)oplM=A+en88{{Ws zwpPB@9<57SZ?s0W1v*(X8Z4U^Uaq-)ecOd*+{KaRXb2Jb2Otsr5;duBC$*Xy#Y!+!UExz6sr zX!ni)Jy@>M|8Vp748J9J!or9zj-5Ilz32IP#rcIa19y1GiwCo>)UW#P^z-x7pxxb% zlgIUFPLJ18XX)60sPrX+KuzljHLNRuIYbZ69V+`#%#1$dtungToPc@tm&PMnjl0>o zQ<#?7N(w;To=pdGV?GY08W#;m_cN9%dP~1b;sw&@38?&GG`+zf*43fzZ4)i?9xwq_T*r&Z}ZjiG7}p+z22*g$I3?KQM;dNQW^wI!oJ$(%3CgOIX{!D z%>6031r(?8qU47XWQ8M(0cObevPsWyu6)({xqY94;%o!28;1ds_@^7j7EjhtphTWA z-O7^%65Iu=>Q(2}3tiT^Y&E0wdmmH++B3t?P%wj8N;sc=NaSFqR=vI_cQCZVxDJHP z2BhUZbOm0t;v?;n_w8<_Z)@R7nA<{g$HbBFAM%?2_S;F*ICFlLL(?*)_1)kEBAij= z8+sooK92T$Ut&bcRLIl|^(ft#rUR_z?kjZ1H9gZIZdr;s)HH4x;Ii&QQ?;GHAEjo0$F8P6_q_}Z)5BR3>}fOA2^{ldu@%c?Q^`AC=ub101xOy|t&zJK zwb31OFFhb*?!AGV#N8LyI-6uQZVB&2g1gcffGT<1%G%O@lV`&<-HsRsH3tL_FLDQr zRtYB9q_ob{JF$pvn*2%m4B787LxL8t}584iujqlHYX+2g_o3WwGe?n+ohmB3N0 zbR7G%N1@`kgRdpQn-09KD_l5YAy%7v$v(;3dCRUmw6Yco)s zxrI8OV_14&!-w77d6vb74fizqV}T8-)BU@0In7oQ@M&&Mo&4~_b;nibbw_ux>NL*g z>XVm@iQU24rBW&&nyogH`sUd<`IKy5$J2~`TyLw2>w_d>B0WEtq-orTWSA zyE=7Wauuzsrm#L1G?)OwzAozSnYqI;{@{N`&XKqN4Fk&wf8aEo9+xbg$ z4tvSR$EjuXtZb_tM^w9Fj;K}voN7405lNvR$fcow`WIO3Tu>*4bn0%>wGNz4?ye~} zZLKM{0l1as0GHi0yp}jIoR_*F`A9`u3t8IKoBtD?%BYjoqq(_Qn6ejsPb z6HVscVuxh&JIfUmAo9rzi{8IrU#Opbl(zLrH)>Y47(jpFgZhiZ&|kocCuE9N&TQYi zwRP1heztFR>fY#uwU=CTGn>g0aPQFJ9TPd43G177+3Bz?A5^m-m5%3;WPsb2$vwm# z+HtpIiE>b3(Un)v*;^yeXGswD5Rms$E3=!SvczX1ynp76aASJ(;%&WP_tI7=z&;>* zf7is;pzPVIQTpt@o}p>e!-D0SKn{z$L`5dpOn|$UUKX*sYsOz|hLYZ5M2>OnfuRCG z%5RCQ0<~-ETBPes+BVxGG@AhxZ_B;SnsckeC7Al902^pLUaYV~N#Uc^#^~dW`UOpi zr7wWipX@SsaOh5V(~$5%ZBq5$?7bTvtvG##eM{pE6Ud`NdRSKf$I8Kx%-wI_bpJMx zUMsW@iBQ(pzW>y^8@BQpf>q5Id1T9z0+YhwfW>WRUfp9Xv$ByM8!S}311uj=FpYfk zoZye$!$wZb68rq7M}xPm{9^%*9SC$J;p{ks75^Y#v|Ib|_I-h>^_S~DL}SnFrY@Rs zLMRLfzhRZti`i)dbT}6EYc!0-8>l`Ce)X2b0LEFMY{aHh5TPia9AXtZ!+_2#A>kHB zlwLQ)^J$7vCKz`#X2Z$w#{ZsHImJ+Nrx|3Ey&upkX+PP;rS` zvHLIusQ5qmIVaMZ+Q7`YPsUs5yzwFT|Fqzi-o8xh7qgu6Y!{Uq^uPGP*smH^8C65W*CLR(wdQ`^gS~7mh3zP*A?SzBqUtkG#>A8L3GU z(#qo9r7`XxR)QL?#N5pKHh|mGMUB{%{VA3f(x7B86jx%qSOVqV;RkAW<(^?4wy1x1 zhIQ{5FKpf;ho?CK?nqz}APIIc{Wo^Kb1S{~@X4W4-2AZl07sS96oFHO&eFOaW_5wt zRId%qE7Zm#40KW@a3x)IgDVLxLz-yFmgySa|2)|3+^x=!%zf?JYHforrNa+QGMAZ@ z^&*)|57GeP;0&p_DY5z8Pu9YkcRwX~4v!Z-Od<6FTHpw9_2{nueddP6r<{k@^8&kT zOCGv1t?UP}fE@h-B-pAj4T>H2=9Z;Zk7qGD**A#?a7tG^(-Hg7F4I&sgNynBdRO{i zmoQqpuL%I@*a)~+h_f84qOHpe*z4=VD`F&80FZ;aLDko;j{Tx*QLX;BD%*D%6(_go z<=4D{qd{%d%KDG1t$T&NA>MU&TJ7&8`TU@-b@$nY)5lTS4pii-*N+2v%M;CUcRWKi=s5saipsV{_tqG5Ut9j!fx$az7Z>)J*#Ei3AE2_;d?#WqT>t2-J?l=q zHTvWCLd%e^HegnkX5=LXs^1pv( zRc(Ibx8KCL^En_sM?EEX?psXFn53%TWjC%?dd{h#QTXH|pzf7m8kK1&y?wp({sLR! z;o0L^FaHLFAJHXF*Ek*IZ|GG(ImP&Xv)x`@mUK<`PtZ6iR@liIw(I~(bDsxr4&H0f zE~(_K{L#_0(LSsfne7OJCJXT4Xz4b^KA!D_>Gs*i&*=f)g8{WA%#}S^lwp>)7Ea%u zS^MKW-Q%QJi|zo6aJUk%-S%vk?T+DOAEo*bPU6L*&1tu*uK;3HFGxEbw`0Jo^yPRx zYqpnzlxiQ)2OPGrNfPYyvqfbKim}NL9qD=(y@@y{$*vfW`hcdH8`btRwimvvb7EC` zty`e>$mod*z#*sv@7vprHriWCW7jn|`U$l(Xze!_SuLInjRul}@750h-1&BDWF(ca ztT5CEV=#29#5NM(;)eFX05g)-!R#{Uj-DvJ_sr6B9^GLPe{#x5V^z%HjR&)G zuB>W4Rax0S&!iVff0xMV9qufD)MC!d9~-9XRY{P52+Lpr>%Ze)z(RRsb%Cigi{CE z&2Rjgujb9#@zjOitGywuqkgQIS&wzKye|F)U6D<0wexPt?R$Ce_lNwbCx`d*d9g?y^uG?%Gfb5*3wqtfa`1YJJVGnY<&0Ey72SFVtZqN*(%fS2;J_% zmx|RTc8{EmtQNN!1Qm{4yA0Tg?nnWa6X@>CTr)1J-H}@>I5HYOR9I}kxS|SBR|Dh+ z5^>4PxxRjtr3D)Zoww?$ECINP=3TSGYnGD6O}hAM^tmsw!I<>G5!0*gb}K%_Nu14- zzW*)|jgiL2kJ#~+0wg4*pViR1@J33hde%m+OWiJJ72@3tw3xeNX?A18^1V$BbDHd} z8s&wHHUnyt1k<6JlFG3-u28w_&W5>+(Z*QIDsY1aaAwwdmz#c4=C>##H z*XoW*WC87Dhw^6sx=sE4tqiHTCgW#T*T9<_&;b>IS=E+aW1*G`CW<9`8>lRU{;=e# zObwd+;|aNQKX|H*v|LkH0P?y;;EpOXQ1?Rb>)?p=mFFms8MfE<3bmLqajAxoLfT&9iXmYP5{w8x0Brj>t>jcw$u4Gh!_O1p2bPlC z?b+eI7lXm1Q+`@B*Jt%hpX08-Z!D3w#>XK!!+o#yw!I#%-k=Qq%P)FGfp3mI`9*Kr zfw9B;6W1FJpt|AUrj;TBz}sTHS;f8y(4K~$aYvTi@TeR5t)=cp8^GsR-!pg5Hmg$H z`(Z=e4hul`^{i)!)(+J+yDoLw5H0mP19M7Quhhj?>W1Qdw)|nELPxP(dIB?gR8}>10*DZ z(`LpFh2`B2rMuSpd8iK=JL^oD#rqDzTaCV!#M9q5x8SeR)W$nPeJs1df;rNOZST+# zrGnKdRk2{-mb23CgReE(3tIzDT8_354;^lkVAgb{u>gtURhAj1$-Z(s*2Fh`O~30w zHr3~zjQ}uS068TRsr>}2aU+)&y36>Xe}K0`LHQ?9wUS+d)J@VT6=>xi+EufQdsKQZ zyrD6R&t=H$NIQSKIUonQ+T-Oq)$eUfxJBL0sE-ssy@54&# zYjrC#jQwC13RtHA*miph!zKNJL5#2C=GNx!zLSG`{b?@;T5z<=-Jx^9PYnV^zotnW zc`-M8N%IPTSUBa?9eyC^H$dBBWV69;jHY*?3J~9-3Gd=ZpqZwWH2^K-c3o~>fs15)kZ*(P)*RKufcj}~FQ&y8l2XBUsC=M}QN`^|vjeQ8Y< zSf+d{Z2XXiZ@beATJOW&#s@ai8imRzAa`=;_r;%3RYU2l)_f*B7P6@Do;fy`qVXtq z@6JDuhD+Y~+4fJkn%~Vm_i-BUFp9S`#(Yio!sz~q1r)|hZfeb&WAT5Z)3rvjI;E@^ zv<4lOcFet?-5%GPd}6Csi?n-b2f(bCO;@>F*~ZXM;RaWh4f)a~g|3}tW^aFnaVp~u zz}!+L?L)A8Hsn*=R~ywd2iTbR`P~;a59GCWU%AkCKV|=-{DyWwYomZ8_y3l@!vE>A zWxREKo(jXSu*V}*1vzh(CGV_tuy*bE)o^4Bb_df~~Raji$$l`V?O!m>h)G}f${GMN*g`c`lqvBpm_6SctgE&=uajkcK$6=EENFE`vUuO6s`JBNhwoP^%v{V-P6^C9mQmwZ1f1_Rq1yCcwc#jO$wo!PtIMeNFDk&Vl z7YzVI%N-sc^ZcFFJp?ez#V4*a8}zwN{)2ZCHhLGFaS#;4NIdTgmqVsW2QtGix@cV+ zco7(#lSp{eR#@`dw=VPUsLg$q8wTQ-ovq*ZeuZDXp++S*qWMYck?RXbrs`qN-FaET z&vi%Eu@ikCk40h7UK1g?Sw)6v%$3)=zI#2CpJa@kT%%JR4h(I!aZRccF8nzH?B2fi zZo&C;ds~+~Q|3(GZfyNedr}xM1W{3HCU@KPcc#?R&Lbxe6>cEjmSBEFRfD|o?2hvh zx{+C_2}4Wvm1ukPvZD?m;R3*p1c+Gf342JjA$4Z{lGe04tBT3XU-<(}MM`HAAoYnf zgw+H7Mzpypo15;aOTL%-RR7JSfD=gWEXizkkQxX-JIIcl=~`H>A8rym2MN!N!Y%1V z{Ll=8=tLUO&Rie;IdVu;lvg8{+QYT1FqRBA58tM|gx@jD|Mn z?Y=@7DL7pnrafGgaWSp3#j(?K%!$~tV}y1I5L;q_m1H&TaP^yu@d9WccWo;%Y;*Ic z0H$R)8%~BwTrkUdqcPX#Vp!SCJR8*szrlt52|$Npo%GjuKx?wig>2pNHic9v1<)!f z(5N>_56)dlwsC0<=nclSj&~D(lwgWvRzl!G-WY}rH@FS0#1cs%_s1dXjzN2Oz&h^^ z8oWCg6`Ja|XP5ad{(kMp2Da*}3V`{=uVx1|6jp*yz7M8 zA}EEQ_Xo_VKM8Oz&o;+K6>Gv&Y<-mJ_1uy*DFFLMw#CSO!aWmFyi=_m%+eBNcjk=j zcwwzpKl}BG?10ifp!#AN&7HH#tfsK;6D7}EN;QTVh|NWqf#3=4T8{InF;NNXL6;X^ zdsoF=xbeU$wHQY3vf7%qqjxwyiFLm#W-o|vn4Xf0HPA9J0H$%CuC(M%%G++Mlve`A z_F}tWJ5rq&WtV~pwO}=E&5VG(YJn2K=mVIhM}y73`DHtp%!%|=TlCUjK%ScoF6R zgx&~grb%wAsRb?|?YOd$m~nOP>oGvK=>b@0@_wCuD1NKb?NSt?=BL!KFOx%pBW4_ zsx3Sns89B56}y8ol`xl976n>L#V0R!Zuqc^lxKWJr^R$#;rq#4`q6~R*eZ+cNBMgT zf9{EC%-=R^pOTC9qU$lJ$bPm%E=rF{Ft40Xwp{&HY5bD(#}=2KfQPh4=6QgqHu2NO z%lY@3w9ElULImOC{UF>s2Vm+vft=uJO62;3L1ni}ha-t~7ENrM0$_go`iD85+PPKU zO+ZJpv?QR7;Xm-kj`-u{K5M^3>CrWn(956;dE~y)-?p+F?X$K6Z+&u?`+AzMyb*XGrsFGrv2|T}?}I5R zs$~1U!^yAFJ+X@pK962A2aBT#&mY+~P>(hkxZLnuo+EWWXl<_VOuxd3Nh6hSznHJ| zn|SdbWjl<7Xdgdj*B@0HFSR`@a+pu`)f|F-t;RpjfBID568<{k}w;nz~O zKAXjUy%K%O_UWZ;=k;n-0=o11NAkFA=XIm_>1=G_G0x5G$bA=F7m%;N_e_4#)UqQN z-EQ7iJCdU}XFE-8VC=|m6Q|4O%(|P?#U^TRV0qG<%-1;S&Ek)4pCdV`Dxh7#bj} zkXTh|@(5_qdr+BqVc+A#hKGsiwn@#`v_hvAL^<1nZNlg^epVl_xIf6KgmKmB+DAY( zYzH&I0!ANJj_^^K{i6&2mfiCa#c zC{_UGUN%7Cqwjc8F##Yqk1oj=&EI3kqmTB4ZlaS6uP7Rk?#JoJ<=4**Wry|39Qeh1 zliP52JDa0#hiOLkhdG`#(1g6k*jJzFaw{rYF(>Hqq0&XMOz(r(0YDn) zMHUva9Vqon*X;@FT%^mXWHvzmwOSY5x#~M$KfcJz&HubcX?wBuiGcbwq=sY|ght&D zoz42$9f@>4+ip3&BMO~gy(438Is|*kS6r{*r2Fe z8N1)8cvXY5cHdO=J8%@4kUo;gDfbwbr}jZQ8DUsoW|c<&1abO=9c7 zh&g52njA+YS+%RTpnRbzSec&>1k(uko>=_d#VLupq4+nS$2HNaroFcwn zC!6b;^W+)B?Qw;*yN4dcH3*#i^tMZTJ-r*MWTs%C5YA8~kjL$7UZy*25lLfYc3NuM zm0Yn0SQXT#uhor zMiomW2nP*a6p1r8tJK|br&k9zFD0v=OAd(2T9+xo?9c(Es=oRFWn;C7W)EEURXv)n zFCifJD7Soc^{lpv9?H4&o~EWBo-DuKXr-TeC!+Z{F1J^imfC)2@6@K|-UGwDciY!~ z$4JR`G(Ef1b2m>+JKNgOk<#~0wq4k&nUbnL_e6nkx6TH~&fgj%t$r`Ku|U5;#x(mc zAa5-ivR&!QlyZW+8<$k#*#kFifEE{hPSV3!b&|Gd)R0jsEOYhMGi5a0clKA5VCn*) zrPd9ITvHc(p``R?53%-M6I(SKXaoo_HXyVdnc4C1>Ps%=<+!%VOMl@qg$e>=W6^`N z27@gpZB7B4|85{(e}>g%!K#tYam?OD-K{Ld7^bv4ZEWhE)Vl{+mdUwhUOODb)*CFa zO~9!8v29JQ!@!xPfT$mf2vyCZ)}G1Edz4w~dz(#v5Ehob-3Ez%AprnqDg0^cIRjzO z*1lhI>upBY&N_GiRfsepPo@xunmN0wZDYn6XWm({DoY*(0_-Yut8iPT%XVgM)1#*2 zq~WJ`UFVhA|0zZl0-P*s}wesg9=>Tsl?Joj%h>Tlx^;X`2c~tK{ zf1w5~!oVT{-JBWdobfU`4InwKBO?E6OMg6~^`6oT(2(ZtaccCP87j*P!{%a4N)1cW zJpoqdNi~r+N6N^c_WKucavzW*m%IXh$)y6p2 z3l1xz56>-nK}RJ$s%lZY=-B0km<$^~`~JWSG2+D$yCy71zjNpytMSJY zrQ9=>GTvn9Ee#o;xxIhe9OZUVP3Y>t^IZhbHJNV`2`zb2NDyl*%jr-LVA%PZ=jW3%;YMZb@L!SeE8Ri(uw&mSwP<7 z!O=O!IumVzuSV3*SXb+{uAQuxbp}noCxD!i8L9nb+6E01vkHB+$Cmy&alOd(?2hMC zY?np-w=_7y+LPHK4axMlFf|5%-W&@3P(5F0LD`wx7CW({b2L}xy;-nX6A-R zp?7AFfH?=Hg%ZTIhw`!cyy~lRixgho(XI4X<)h0Cp|QyY#NkWSeY+2TOri15)?6t6 zuun7lnl_y!vooaFol9k^Ri?h!a`5tQ(vjSAeq(1-_R0 zfx;_;CmWf8G*iDdLqZ=6z~!ghYyuW$88$B4mm^yFF7?SQU;S$8@>}ZH0da9GV5~JP zGjk~Nh^fbtANmQJczPz(@#j5!q$A1{2YgL4Usj1!i>1Ew5SLn3(*sh-+dxYBol^sv(_DB`1`-O%}TT|y&eHcTN$ zB$$yNVaw)61KroHcrF6Q4HC1}l5`~Q@&|zPi-K|VvB7;UcYq@P;$u{^ysd?RrO$G$O^E)?3(oQ%3?=&!K)P0uSpmM&lp#EGGO< z{_KByC!@;Q@SQC5`(tC5b=3|VW0OmNI27{M)5;@jDk=`uPd0=+2bAjyV8l`m)TZ zW}S1qujjk03)hO@WF4^Y=)cnz-{}}*X~F^ugMMrC1A?7`V?pRCK>UN_dF-ask`?By zHHp@ZNXo|ErTG%sj^Bk<$V7t{AUtWO?%hRu71^ILboL%oy61|E1j~B4+Z@Kl?fId= zF05@R}Ht7`k5J;)tauqEoNng*Vy}TNcBtBF>hGFEDX&cgSvl7TH3ZU+ZQH*uIk#t z+WpzJ>iO9&Px|k>T15-*psx{)F>v)M(u`OAzpZPCNPfoqj(WCSu_Yp9B`ytUu5C!A z0<8<@D9!2>2f^;i14?nRxBE0x|}_ak%Nt;&L+F7?XBuoE^7K^D#AJ5skINjbo4V3;Jh2SX1QOl%RatnN^Kt6OyFG zI=K=|)05Z$cR3}cg36-4jfF2O>-Nv6&kmBB8_e}Lu=w>Z37wt?X)wdqo6{eSC^z$MMyaIpjK5?e$ja0y0{un zXMj!`Z~U&Aa&iy7LTcLI z!aPE|eS}%Qd0!dr@&?_a9>(CN`vVIHcb`_Hm9h=j1OR!{NQ|spI|T zy0gcZ*C>>o>2Gb*?r%{0ZS~cI=<`{>h~Xx`wx-0MliMA4YpQ{2LqPT<=4WqSN=VVl zTM}So7OG(E1geEV+2U|<&w0FK=i}D=`skz3Puh_l#~W|~PU{5{&L3n&*4uW41*WqP zKB2EU9^;N936Pz-tXCdA=QUQiY`li-QJ?1!+crrw8?Be52)Qd6)g>Pyd~1zv~lDU zGrI8YD=XITCr61ID-2C1pR8A-I&_~Z?cjwiE!dDe?q|C7Pp#UL=i>8?p0(or`4nU% zsg4tz>wTqa|MJrm%K!B3y#E0sF^r`JTnc8UPHLC``Xj;dVapfH9#8FvxkvBc^Db(Q zXYi=^?3G{Q28GdW6%J#pjItMXV1d$`&D5X$Djmqb zIjzI~kA|mhve+U2E4stebRR>yt#39qe@*w{$ri2a{hq(a zdfJ{m`?Jx!{P$SZ!#PNCMzG)eQTYI0*kgZR?Yv|8$cziR^P7PBo=?sOTSpR#&aDI( z`yCD|LSl{P|8;fqoo%m=-_>@!>-vNEkx2g;@<;GU0^j%hOY>?EOWdCHKc0V+`P-fo zIz4TEggfe`iRjZLZe)JLA3zBXYKwhgXH89OQ|H)+z00>raK8<8xFg66^?LczH5IE;gsBnt*n-7}zzpQ&4n&B*w`wIy0`y&wLNj_3Gdr@|kPql4I;&%PxIs{a<_?JZ~lb zNxq62=;01pR~Xv*hHeNugPq~G zqadp;G%d69j@w$TQd_8CS8TZ!;Lf7KXqWz4B&@|fd_tez>>FB}2G}U_7rVjucgr@Z9epQw9`x2A>bsfTG$~5g$25o4-eL5M3a~K1W7n_65 z-X7kCFe}=VjM10iZUX9c^u<6My`jS5o=9a=rMj!J#v8k+{gfXFTa{---j3;Z@; zRj9i-`+j##vtEBFFt-e6NpM@vmQE}v4&a{pD>%wS>qRj$Z6ntPj>;y)3RE@h0g5?Y z)b86W?PF=8xk{sDxArw2tnpdmBrrf!*IXUnnrVr$I|EwrD_iE1un`{ab99bollq z#Kr2`trD|Ok{+Vpr{)HLd6*uM{`fz5&Hj0FfVb>5`~3jpZBknI;J<&({-Af^u58(B z_NaMPh#0=xo@4L%W^3xm#EK^SlSf*fJdPUk7=K-n{{-EFFC<6AjDOg0D0i*b{K|JH z?**Rqe3-Y^_}8Mh0z+^oKLIoR`N$?wT#zhpOZ&Ic|?S_&w@02l%zU<^!vDVPJy z02R=HIj{hhzzSFc8(<6UfIV;kj$kgB2b_R2Z~^nd0^kbVz(U{-Jb)+g0^WcQe1I?T z1O6ZYECPWb2n2%=5DLNo126##ut7M80E@vAuoOgsC=d-|z%mdEI3Nzhg9N|@i699i z10F~LsUQucgABk204j3$Ld(V@(s=u-43 z`jlA|3dMk8NHL|@P@E|)lvawN!HBPt@-ys5Z8Oqk3f5_}-3yNc^8^~PhUlM#y+EUh zBG3S415N|FHr9hS6i0y#%l?g3f*s4=Nz+Nw!XEuQN)rS-EIjJ0How%Z+)?6i)U9v9 z8}gXBjdOvmnC`IfotMDzo!4b&3;PlKz6D?bW${sGZ)eiHSVLfj!aHkV_QLYA!vP50 zRv+~)JE++{(|o3R+Txj}PN15th5coR%MJ>Z({mIkYPLmIW8PJk3f6%Z0@G0~f$4xT zoES52+K8_}1O2;9nf!}2EH#Opi;cahb5jSHEtsbO{@?!t;Cqb~SoAAw=>OCQV=)gs zUGkK}FlD8I>5?ie#k+lO-D?kk+rlq+-73C(UAJzMy7UGnsZblm=( zUJNX?$RrdtJ)#g;XDb^AcN#Btx>WA@xfBZP{+9J!Ki#@udTh)7f%|Y+O7r~OI!jhc zg7+G!$2OiduJ^y>DHT=WK_5K0R?_cmPPnY)3`xwDOD_CmDeIq!3w#dPVfY09qCb&p})uWo4R6)eq^ z^*sXb(JL$A=l%OVUjGA?OVg#AX)0e@|I?D&v|e5PBIoJ4Nm-@4{pXtff4>Aif4ccGwP%opbf_(?*JAUOy9iZ%G2unXQp4)EWq-TzBc3bxo|zzgsRe!g(DKtSQ7 z@scuJ4db~PVy@88Z9yVGLrh8J#B*H@zvj-6BI4!3I$JwKN<2S}FLX6DN|b#JDQR3W z?8_8z;&~ZKu7);NjyCAWkdn$3X2_~+4c$B$ArVaa0&A4M+X8EW8#u0^Bx5jinw?Js z8a!eF0@lmRBk%-{%adS@DF&ixm@NTunPM?NgT>7j! z2cS+4$TP)4H~{&OxD;-@SPzPI>O1Tru8;>Mmn-}Byj6;bpFs#xLN48@^N(Zq#P=Q6UP;aWLE@lj+i4W zsrs>4p-eGHoH^N|~i zex`^kL&2h48vIw|a6vH?(StWPo}a)Kn*F!fQ;4`MPFf~cQTDC%b#&nUF(R2Ko)Um;c9nP{Srxj(xN?wDMHI_FDT6QM zCJ=cdKW?_{1~TfCYG(SM@hiVfHfgwJ(0FjM=;6zxpvLAu95#xof?kDA^Nf=n&Hvl} zUwROhLBYvd6+RarUr;bu^q`z6NaJ(RpUGGT)m$lv!^>dt(z$8846gE|-Y4)xf;3JJ zA&8&F<9em>1iIgJarvf;h%5G-HYQ4mlglM2Gfm7>|7Pt3@)^-9NPxx}2j`2EPX2Pw$r4IUq+krEJSmAQB%po6GP#*tJe)=*R2O10 zFM&JB3ab158428M;+L+-ze#=t91TAF8$m@8uO#hf(NNF zj6fm;1{XGq#LAGU4?hjAh)|9=S^Ep`lN6_zSLVcvd0AYx?7kue6w6=CO_vEq~1{N!ko9oXvPhdrAW6OmH)}LShnn(iu1(k3c3}nc?s2$6Dse z@bFqhXJLccfq_^SgH2cbQcuUTgBJydL$prFRN@S*AXAh)lb$Vr6AFh;iKg&{6blOUxRgXR;Glff zw)$V&w7#^t{BswP%;tU7rp<=-PaxAC3Kw4U6Dhn5L8e&ot9k{V$cL8!4WEK|$_!&O zGSkwqVj-N|L{6HBE1$;AND?Q@$3r{nA;v@*VxpojQE`~4L`+l$CQ68j5+f8M+Uf-* z4KZwNYr_!sp3X;Kav6C(ailE0NWRh!776iO}#&E|r^uWFdS+{FOlF zpo5t6l|Yb0y{}qjqx+^gRHC5TBwJeC1jO2qLeGxp3Q#F>D9PMxN&@O2 zzM3-^ih|6+_`|p&QOHmCnvxL`hX|3(nQW9$IxmBRQka^&G&mDNPMZ1`J~)$P5gQ|q z$r1&w)_ zxd|c)Q~-VkM4?PNC!Q#n6O5nqYZMgIpB72L+n*IUbam ziYZS9jRm}oh&Xwb#O0??X{Ai4Q@jb_oS-9_zT~4eMmR-6#7P&VO-Gxe9B4b!r|6;H zRAEZXc~dcCc6yrjH(u0b+KZCDt!Kjfin+$$R(emKC!;>`U@(RPkFKA9`TrtoHnmCQ>^z@oE@lVun2)zCube$iif!lMPKddMmq6b+2;PzUEDQx1a6AE6#i zK2he~Q4H0&40NLfv#E>#K_z@mXj&wE5@Vo0aF%x$XG|MqRKRXfxL8{SYw)u z%=`L4^Mw~qI#c<{s6{@VD^BJo$obM)YG0z4AXz0gG=#|_PU4~2kxVXVV2J+U+7}LG zaSA;fy}O8)KIv>_cPEPA;KXR`Cq!c`S>a1O86x0jD8pO|#(QFxObCi`Uwk_;ZaUt= z2~oqT3KdiQmGhTRl?6KL)AT-Pb3|xQ(6k!P1)M%;*uJ2^%mA)V=-1GJpmCW}Jo?*n z&=8`(0jHLZ{v6!YPqU#F@{<}RFOr39Bz90XLiV@JoK|wW67PX>! zf?5RmNfu@D`8+dItjHouboM_-@Ul_KPllsk7J`@T`YSa4 zI@d%ddh|fIRTNkuq07)v3@6)VQIWMUp}XJ)K~Jj?9I}k*o@u{k^_46gVR{Ph8o%B!Pw+f`- zgEBs88dU$qh%0|%@74d!J81p0Q<0x^Kn_}n7FJ79OG8IXM+X5k8q4Jebc`U-AUH#C z)A7IoEgvmEod9hgg^dUfXk&GCbmeeB*GOwWqBR0*Ai_AJ^%T*1hG;!Uw0=Xhen+%k zAX+aGtyhTFYeee}qBVhNy+w2bbpJqf-yyp15#0}n?w^S6M+App2zU%a*3y>OnL!{R zx)^P;!ps>4v-A=2Y;_XFK*LbZ$k+sHI>(GkGuN}ww6wCev9+_GQH8-H@Lvv(!Ql~k zJc7p~3V4KoM~HYiCA^$6UQPusr;3+T!^^4Tv6^@}5*|awW3=)38F;)d9zPS0*TduW z@t9e7{A@fz!Q&0^7(+b47*8<4Bc^!596Z4cPoUxz&GCvBctuORq7`1z8n0-BM{Mzm zc6h`dujqhRbi^yp!7I+iE6&3!I^mUF@W>3j@_an90FQCSV;15Ocf6V>9`VAfdE*f} zUfmb3;g3fa;gLW*HVBUd<4GZSBovQ?;SmNNVd4=M9%18=a6A%$M;7CeC3s{h9*M*w zQFv@L9*Myt%kW4n9^v4TI6M-MM-uP|7mp<3kt95lj7NBQBn6M8;*m5wl8#3*@CYA| z2=K^qJR-y+B0M6-Bbj(43y)oaN3!uq4j#$HBP;R9Dm=0pk9>zmzQ-dH1dptNkOyHc zgmn<|A*_e60YU*nAR~BkAu7O!4Q(`gWb==^L2Q>ix6fZ1RO$eg%uqLVIhLo zzYmL}2;m8W#gqR+@T5-=Bp5tt4OECccwP(7yCCd_um>{}i`UqTA^d>B;t^D9sxgFc zETIO2CDcNwL#yjC1Ui<`fEF7tghuq-h#|DV=2i%8@EW@xL+F6zP6!9!HMtFgCm+NR z4#Deg2t5!w5G>&^JRd>(AH@)QVfh4FK8YcmLi?P-5YEE7a}e%A-m&K)H+>M!LFmU2 zF2MQ$6#pWI@H0G5bnXgzd%?3yN|%? z`>^@}JU_$`M$ub8g5_Uf-57)?5XK>l!XZ3`=ig!53wVAF;SGcd2yY?$0pT5n@E(%= z6J_fo#QO`v-w-}w2ogCgVJ(DpaS~d%IHA_N)x9F?JU5^!M^fS_eOAPUms*_ zd@XMUbqoQAK5xJf|w`3JS2=aegx%T)fs^hy9XXebzIcH|h%$y}rF%~KOOBtlh{wOJP7qf5+ zKbG+LQWkGz=n~AljDh7$`WPu6F-ciuG3DdTZj&-IN6JNQq@3PP%B&Tn%vnjw*?CgV zTcs!;QXEAIE327*jUs=e15gJ)*6~9TpRClxrz%xc^ij%KrADc*xHODPs;&>mBAU7( z9FBz4jp2ACtagT@k%+n}tVN>gr^AR}b#qumgnC&x6p5)@!ih*+y*#W&66zJ@oT9E2=o6Walca^heGPr*E0ER%G>rz=XKc}6 zi&mw|sRTJRtUs&@Ep&q9x5k;{3(e!n8D}1!JzlZKm}8BxiZcdW5!M>&Yp};)iYSXz z_BB`&>~Y3)rM};pP>2!+Vmy$?Y+AFXbZPxkjXfcMrhQg^LmG#p(3G4Fwt`fg{VW}W z!N)eIaWv&{635UUr*9{WoZgc?nUYVsZZ&3$!vLWtsIQ^Ad%zUULg^Am%(%&)@dnK3 zleVNcLaWqd5J7AN`xWW={)~m9Twm_Lj-l=SmUrFo@;t)zM-y%sCam)|kYIBSU<3Aq z>U2~x-AFu+V;wWoMp|i#nUjo3_+n8!$LTi>Yq?#KYwO2yE-y?(PRc0BJZNX-FY{1J zE|usO4;9HKiC*fVYVsV3c6z9mte5C|4-F+JNpz!!hLgyMNroax!Otj7TJO3M%XL?} z?%E@N)_dEl;Mn5`?IJJusLDyf#-oOV?>M$V(hI(7b4tOOLQXa4ql0i`JxOM|24*VQ zv_FMpZB_x=W>isA!H(`vodn921aO;iB@r_ejIE?}CsDujoz#?s!h#*%pGxC9g({=p zOmgfNjGfG5ny2;zK--KHSgqJ!pF&EXUa0Qf#UkcO1>+=YVs(mAsm8R>?*#|mV0CwU z7@vqv1BLum)Y-0Ol=e^(*)djV3mI1<$_A6S!JkF_HtHEjB69=0oxuqbyo15xBzPx- zss!(1@NZJ=ZU*0$;1?M@46vl%LltmeDWe$OM46=VIZRaF9>x+fqE~M6UT>4T39BpW zd(blXw1ss4+rRb<0m?47UJifA@}b?uI9Rh1_Jat(EaS5l#aR+3H~VkMc^0$fYRwM0Cq0#WmyCk`@Q zO>bqx4Kl;lb}hLQYg$QdTImF-jmh|gup)1gwVJ&hQH*ks{Gg%$7v2Uc7-5um!ILs< zR!=eS2)Oc>@_YVCj!jZ+#`^ogNUrM!hMdHCR5}7R_y=s%R`4oe>FF9>7GA zXt*sD4e=hA279dWZT0Ur5%%phaxdi5eQyQ3+U@O1|GJd!(Vt+Kg>NL(GUX;x(9`W8 zMZJcUFA(aOvJ-6~kekuC2_+q*oLl^qBdVOqIR0aYQ_k@M+2nXH<(yJ*PO)k-ic@1w z%TD8ZIZh30p_@aprg*1YGu38Q=~Da6Q?sWk$p`pgbH>e`S-=u=r%TDCB|P#bCO=Uo z&-clfF?nB^+~AWpF!_-(d4f;g%;erOS@`5Dn7qGC{tZ^5A0Ts@F-_?i`RpDjBEzLQ z+i`k_RBa%`S?*;0DVzi@AP=#Ir;nk**E3i`iVXCuhn~74^?Zj)QcsTc96Z)a>f1G> z%s|CPsHhH9B&3S(B8;RCw7oI2&ZuKcCzFg!wQG&3w5h%l$!xk^t3QM2M1Yy68K+4m zG|!+Cm*wgvs6u6|?a`klsqO_HY!AUhZ6QCk?L;Cjz z_pk4|qlVnfkUMM0{mhX2?2sFCU2qgI=lBqU^DR}@9h~-ZWU_6yI8TBPF!(_UKFHvy5`1X5hCLkAFrDOT zl2f>AX^@^b8mQ89@b}p(@JIC=ex+7E}F70FwHsroFtdJ%io9*lE%3-*>fKeJ^5YqB z<&q&+#&A^H>POuCN!~&+cRG7~f{KFoHad-wuD(>dTAqk>g6rNh@Prie&rGGK?gdr{ zwnLPja>Pn}wv@-#CtFVJmp2)EFI(kXE-$h`>2r9p!oQg8Uu!6Gz413+!eL&<>WYCn z5Pv*^flqtlSgZEu>;E_NnbD#VrOrWgh9zzbH`Q~CH{HAq=xs#1QgBY8#8!r~K_oK$ zCo*$z!#Od8i$x9YH?{UDW=(y6zNY@^0l1_lDx$DxSCi_#hK$mWq=jQw zv!UOt&(xZ7;E-?{D;6)0q z62S=&@&v#Tlb&*2(d4=tT=yxt$0~uQeSBX7vw15ub@)T4%HPTH6WCVM(Z-{Bg`>mV zUL%W?!3T%Iho~3EJ&^^*u)raDv_9nxy+U8YP_=-I>M&&7j!u8ToLcZ|MJ0HO`fCAu zQU9rAKS_h8Q8-33;S&3l=9wy5<0(P2aEIS4s8!B*tg~jgS;+7-{{7^Pf^&v7qv*^4 zeQIz&IirbxuN2Co2p8tSU|ldc1B26o!5IZ9IX#&4PJdFZ%27eD7nt+{@O?VtI-j;S zqbb>JU7jK5a%)pYIGe1?GOBZ#wIQQ98>}lbVdn~~GZS$-t@W9xv)^_7p5NJOKiQ^U1oK^x4kcWSvuV&aq~d zoLOKvl_(VEot=Z7H3Y~kAg4jQmWK8(O6_Okr!`zv<;;ZC45C=vo8fd-#1rtSeGln} zsnDapf!OOI!q6E)BocA`7fk)7?9$KlD0`XW_5Wu@wZy2Ki2L@z2ERowa-Z3FM%Q-P zm^YrufF?UnZ3Q=(b7%>5Y21qkU20PH-66Y@Nyeur`&r`k{EB7N6;e=tlk9ojLha~7NKC}lN>2^}~62D!&53MSY`_Zdv3i`#6rp%lejwkpEI}Hud zYouQ-^lqVlP9P5=LiKGzzeecS3jOm!-!Am)gnqryZxH&8LcdAqJB0oPq3;y>%|gFL z=(~h|tI%%~`t3r$LoAutr44u$IFy{sSHq(HAmPVAcbA#4+jy8Lk8T{b7gwsn*jHV* z1WTSR)OcbUI*G1*)L-3o(Ezsl2&JYXPwb=SeWWnmyhu`;FCu1GRmgscs8Gy)nbTi|&G$i-;t3>MsM$}casDV^^Q$Cj z##f1Qk2C8mX8o9CeU$h%Z?6LQHOhURB!s^E8`6~z3eS7`L!w7=$dF=R9WnZ_9DQPV z6my&#(&CAYY#0r8(FRW1I%q9jqBu*z`Ax1O{+7Q*n^MhK0aNuygz;_M4YhtbP)2b{ z-8#sXHD)h0pCsH%d#T8e<|j!Y>PkDd4tn>~S7d@bPlZ#iLX;G%)97vs`lBL^EM_-> zrOBRGfMiqB;Ym@9dI@<{q&dy6%&r9UUJsd_oeiW{lym7m(aWzg%uBMDVBr4Yfd~A7 z_G~)_mhe<&b1~aYwFr<82}JD4eGS-uMj7D#uCNsm7U#PpZssR!9Xu#zgfvd=(NI(? zLS(iI(_K%}c5F8o;{bK{%dZSdi18E&lozgVV>}~Dx+dxSMenZE0%_2vNe=aN_ZPr! zd}r8{6S>^80rkfPSG!_qXGUZXl8~044>=tu$A^+cG zjHcYPWaetKIWp}`*s!U4z-}o*q1|M+AeyXJREt(?q21!m>nt?q>raZJ#Iy5NUaXMd|{i0b>HhO zWH{JHj|0$d!q9V6wxN&PEjR|IRo@=UTRYmr{Nf^KMZ?iha*cm%u!A2_#RXXQF>PkH zvTSQ0+sd*>O@5>ilV~tNc}7UZup1M+=;5ugE7AY|znl6a9K@)b=G^*${M;Rbh@rVr zHOfQt!Z@hE(4-gSJ#1Qg$aeVlWjAGCAjNWO9S7PEz0VmubkrG4@>+sZc!+v(hsata zE5RYI1kNIBjrob@PbkhBkow3dkfJ{)(xV}^$SzX8M7bXm-|juMpHXlQkWOP@D|?NX z*9T-?&wi3*%1n(I`IeXQ2T2mli;asFNjN~zxF+`#lBPl?R=L63m3j<@@=oYrfm5=1 zLBY6yHneLpNaQJG1D68SkDlPbas zT+=G_GDJttAqF5_017>AZgX4a)zV-e>ji zw+5ac)63Po>ZPC6M=c?EU-hKB-6lW?A|*5Bdc< zP!IYg>E}w|SJVGoSxIh@K^y`9Man(W_D_P1bbva`n9#1Wd{+qoCc8KpN>BlGMpg}%jJr*F2` z2Af?bQ>gh4UHA?u(_#B&L5W1YwGP>IowXLvwbp7pS6d75Txc!BbD6aS&n1>q=QxnK zAP#R`OZM^tcmBhNP3IbAFD|@y+2&g8cCFm)T5q@BvMcA{to@GcSpN59{DDZex;}1y zEc-_i|JfccjN%BLZ7*jF{)s5#rl-m6|F-P;bM?1{{toQ-XK8=U{0m{|!oLu)`~sGr zIa0pvJ@S9>De^9}VEb4#9 z{O|b4+gpimZfzQ0+ZyNl+>K2>d*k^&e`7NP2>=%`P_Ytm(#cctSJ?ZC@Qn}V|100+ zqS^l;AqnyP-%{-3 z#8+@dCFKp=P)93=Nr^<2MNxDP2hePmE2dvZ+e0HtX9L%q06TIlyH&`xZA3kl?Hl7k z8sJMy>O3w<@?7}`YUH8W^q#YStW$KQT4)QETPkj)LnTv}NrTfnPDCEt%1WV?lY+h#XPs61G~gZ5Go zWi_)KJs4V-V7gI%kcY6p!Ty}Ew~72UB6qD|`12yaUF5D4);#li(U<=n4>*aH?@%e|rH)?DP)xg&d8 zKNovB*UQKqcy=5kFSAYM^;KS5?Nzn8n*=|1;8~aZf{=GpY<;Il)yeCAGJmsZyjY$@ zMs5*}A1x!hMB`%rj1I``ZO=nWA0T=2l^nN<#umx301m!Q*q&^ohkQgL_mFup?hGF@o{8pk;zGgG;5E;e(aP|&4&?<;xdSAmzgOr{@wo?|58UoClfNV@~vc_3eniIz46NU!BT7NB=*VB4C-4D~M45 diff --git a/admin/include/uploadify/uploadifyLang_en.js b/admin/include/uploadify/uploadifyLang_en.js new file mode 100644 index 000000000..3be8afadc --- /dev/null +++ b/admin/include/uploadify/uploadifyLang_en.js @@ -0,0 +1,32 @@ +// this file must be in UTF-8 format + +var uploadifyLang = new Array(); + +uploadifyLang['buttonText'] = 'SELECT FILES'; +uploadifyLang['fileTypeDesc'] = 'All Files (*.*)'; +uploadifyLang['replaceMsg1'] = 'The file named'; +uploadifyLang['replaceMsg2'] = 'is already in the queue'; +uploadifyLang['replaceMsg3'] = 'Do you want to replace the existing item in the queue?'; +uploadifyLang['existsMsg1'] = 'A file with the name'; +uploadifyLang['existsMsg2'] = 'already exists on the server'; +uploadifyLang['existsMsg3'] = 'Would you like to replace the existing file?'; +uploadifyLang['errorMsg1'] = 'Some files were not added to the queue:'; +uploadifyLang['errorMsg2'] = 'The number of files selected exceeds the remaining upload limit'; +uploadifyLang['errorMsg3'] = 'The number of files selected exceeds the queue size limit'; +uploadifyLang['errorMsg4'] = 'The file'; +uploadifyLang['errorMsg5'] = 'exceeds the size limit'; +uploadifyLang['errorMsg6'] = 'is empty'; +uploadifyLang['errorMsg7'] = 'is not an accepted file type'; +uploadifyLang['errorString1'] = 'Error'; +uploadifyLang['errorString2'] = 'HTTP Error'; +uploadifyLang['errorString3'] = 'Missing Upload URL'; +uploadifyLang['errorString4'] = 'IO Error'; +uploadifyLang['errorString5'] = 'Security Error'; +uploadifyLang['errorString6'] = 'The upload limit has been reached'; +uploadifyLang['errorString7'] = 'Exceeds Upload Limit'; +uploadifyLang['errorString8'] = 'Failed'; +uploadifyLang['errorString9'] = 'File ID Not Found'; +uploadifyLang['errorString10'] = 'Validation Error'; +uploadifyLang['errorString11'] = 'Cancelled'; +uploadifyLang['errorString12'] = 'Stopped'; +uploadifyLang['uploadComplete'] = 'Complete'; \ No newline at end of file diff --git a/admin/themes/default/template/photos_add_direct.tpl b/admin/themes/default/template/photos_add_direct.tpl index 41b19f51d..9aac44c93 100644 --- a/admin/themes/default/template/photos_add_direct.tpl +++ b/admin/themes/default/template/photos_add_direct.tpl @@ -1,7 +1,6 @@ {if $upload_mode eq 'multiple'} {combine_script id='jquery.jgrowl' load='footer' require='jquery' path='themes/default/js/plugins/jquery.jgrowl_minimized.js' } -{combine_script id='swfobject' load='footer' path='admin/include/uploadify/swfobject.js'} -{combine_script id='jquery.uploadify' load='footer' require='jquery' path='admin/include/uploadify/jquery.uploadify.v2.1.0.min.js' } +{combine_script id='jquery.uploadify' load='footer' require='jquery' path='admin/include/uploadify/jquery.uploadify.v3.0.0.min.js' } {combine_css path="admin/themes/default/uploadify.jGrowl.css"} {combine_css path="admin/include/uploadify/uploadify.css"} {/if} @@ -176,116 +175,66 @@ var uploadify_path = '{$uploadify_path}'; var upload_id = '{$upload_id}'; var session_id = '{$session_id}'; var pwg_token = '{$pwg_token}'; -var buttonText = 'Browse'; -var sizeLimit = {$upload_max_filesize}; +var buttonText = "{'Select files'|@translate}"; +var sizeLimit = Math.round({$upload_max_filesize} / 1024); /* in KBytes */ {literal} jQuery("#uploadify").uploadify({ - 'uploader' : uploadify_path + '/uploadify.swf', - 'script' : uploadify_path + '/uploadify.php', - 'scriptData' : { - 'upload_id' : upload_id, - 'session_id' : session_id, - 'pwg_token' : pwg_token, - }, - 'cancelImg' : uploadify_path + '/cancel.png', + 'uploader' : uploadify_path + '/uploadify.php', + 'langFile' : uploadify_path + '/uploadifyLang_en.js', + 'swf' : uploadify_path + '/uploadify.swf', + + buttonCursor : 'pointer', + 'buttonText' : buttonText, + 'width' : 300, + 'cancelImage' : uploadify_path + '/cancel.png', 'queueID' : 'fileQueue', 'auto' : false, - 'buttonText' : buttonText, 'multi' : true, - 'fileDesc' : 'Photo files (*.jpg,*.jpeg,*.png)', - 'fileExt' : '*.jpg;*.JPG;*.jpeg;*.JPEG;*.png;*.PNG', - 'sizeLimit' : sizeLimit, + 'fileTypeDesc' : 'Photo files', + 'fileTypeExts' : '*.jpg;*.JPG;*.jpeg;*.JPEG;*.png;*.PNG;*.gif;*.GIF', + 'fileSizeLimit' : sizeLimit, + 'progressData' : 'percentage', + requeueErrors : false, 'onSelect' : function(event,ID,fileObj) { jQuery("#fileQueue").show(); }, - 'onAllComplete' : function(event, data) { - if (data.errors) { + 'onQueueComplete' : function(stats) { + jQuery("input[name=submit_upload]").click(); + }, + onUploadError: function (file,errorCode,errorMsg,errorString,swfuploadifyQueue) { + /* uploadify calls the onUploadError trigger when the user cancels a file! */ + /* There no error so we skip it to avoid panic. */ + if ("Cancelled" == errorString) { return false; } - else { - jQuery("input[name=submit_upload]").click(); - } - }, - onError: function (event, queueID ,fileObj, errorObj) { - var msg; - if (errorObj.type === "HTTP") { - if (errorObj.info === 404) { - alert('Could not find upload script.'); - msg = 'Could not find upload script.'; - } - else { - msg = errorObj.type+": "+errorObj.info; - } - } - else if (errorObj.type ==="File Size") { - msg = "File too big"; - msg = msg + '
'+fileObj.name+': '+humanReadableFileSize(fileObj.size); - msg = msg + '
Limit: '+humanReadableFileSize(sizeLimit); - } - else { - msg = errorObj.type+": "+errorObj.info; - } + var msg = file.name+', '+errorString; + + /* Let's put the error message in the form to display once the form is */ + /* performed, it makes support easier when user can copy/paste the error */ + /* thrown. */ + jQuery("#uploadForm").append(''); jQuery.jGrowl( - '

'+msg, + '

onUploadError '+msg, { theme: 'error', header: 'ERROR', - sticky: true + life: 4000, + sticky: false } ); - jQuery("#fileUploadgrowl" + queueID).fadeOut( - 250, - function() { - jQuery("#fileUploadgrowl" + queueID).remove() - } - ); return false; }, - onCancel: function (a, b, c, d) { - var msg = "Cancelled uploading: "+c.name; - jQuery.jGrowl( - '

'+msg, - { - theme: 'warning', - header: 'Cancelled Upload', - life: 4000, - sticky: false - } - ); - }, - onClearQueue: function (a, b) { - var msg = "Cleared "+b.fileCount+" files from queue"; - jQuery.jGrowl( - '

'+msg, - { - theme: 'warning', - header: 'Cleared Queue', - life: 4000, - sticky: false - } - ); - }, - onComplete: function (a, b ,c, response, e) { - var size = Math.round(c.size/1024); - - var response = jQuery.parseJSON(response); - + onUploadSuccess: function (file,data,response) { + var data = jQuery.parseJSON(data); jQuery("#uploadedPhotos").parent("fieldset").show(); - jQuery("#uploadedPhotos").prepend(' '); - jQuery.jGrowl( - '

'+c.name+' - '+size+'KB', - { - theme: 'success', - header: 'Upload Complete', - life: 4000, - sticky: false - } - ); + /* Let's display the thumbnail of the uploaded photo, no need to wait the */ + /* end of the queue */ + jQuery("#uploadedPhotos").prepend(' '); } }); @@ -295,10 +244,13 @@ var sizeLimit = {$upload_max_filesize}; } jQuery("#uploadify").uploadifySettings( - 'scriptData', + 'postData', { 'category_id' : jQuery("select[name=category] option:selected").val(), 'level' : jQuery("select[name=level] option:selected").val(), + 'upload_id' : upload_id, + 'session_id' : session_id, + 'pwg_token' : pwg_token, } ); @@ -412,10 +364,7 @@ var sizeLimit = {$upload_max_filesize};

{'You are using the Browser uploader. Try the Flash uploader instead.'|@translate|@sprintf:$switch_url}

{elseif $upload_mode eq 'multiple'} - -

- -

+
You've got a problem with your JavaScript