function UploadAjaxEngine(){this.Zindex=20025;this.popupsOpen=0;this.popups=new Object();this.Registry=new Array();this.TimeoutControl=new Array();this.Thumb=null;Utilities.register(this)}UploadAjaxEngine.prototype={Setup:function(c,d,b,a){this.session=c;this.requestURL=d;this.callbackClass=b;this.xdomExtension=a},onPageLoad:function(){for(var a=0;a<UploadAjax.Registry.length;a++){var b=UploadAjax.Registry[a];if(b.onPageLoad){b.onPageLoad()}}},Popup:function(a,g,c,f,d,b){var e=this.popups[a];if(!e){e=this.popups[a]=new UploadAjaxPopupForm(a,g,c,f,d,b)}e.Expand()},IE_Iframes:function(a){if(!Utilities.IE){return}for(var d=0;d<25;d++){var c=a+"_form"+d;var b=c+"_iframe";document.write('<iframe name="'+b+'" id="'+b+'" class="UploadUploadIframe" src="/images/blank.gif"></iframe>')}},Drag:function(d,c){var b=d.parentNode;b.style.zIndex=++UploadAjax.Zindex;beginDrag(b,c)},Click:function(d,c){var b=d.parentNode;b.style.zIndex=++UploadAjax.Zindex},Close:function(c,a){var b=this.popups[a];if(!b){return}b.Close()}};UploadAjax=new UploadAjaxEngine();function UploadAjaxPopupForm(a,f,c,e,d,b){this.ctlID=a;this.docElement=document.getElementById(a);this.target=f;this.notifyObj=e;this.notifyParms=d;this.types=c;this.options=b;this.bodyID=a+"_body";this.formNo=0;this.hasEmptyForm=false;this.bodyElement=document.getElementById(this.bodyID);this.xdomAjax=new XdomAjax(this.docElement,"VerifiedControl",UploadAjax.requestURL);this.xdomAjax.requestor=this;this.uploads=new Array();this.addUploadForm()}UploadAjaxPopupForm.prototype={Expand:function(){var c=this.docElement,a,g,d,b;var f=getAbsPosition(c.parentNode,"Anchor");c.className="UploadPopupExpand";a=this.getOption("x_offset",0);g=this.getOption("y_offset",0);c.style.top=(b=Math.max(f.top-200,200)+g)+"px";c.style.left=(d=Math.max(f.left-400,100)+a)+"px";UploadAjax.popupsOpen++;if(!this.hasEmptyForm){this.addUploadForm()}this.Adjust(c,b,d)},Adjust:function(d,l,f){var p=this,j=p.docElement,m,c,g,i,k,o,a,n,b=l,h=f;m=Utilities.getAbsPosition(j,null,true);c=Utilities.IE?document.documentElement.clientHeight:window.innerHeight;g=Utilities.IE?document.documentElement.clientWidth:window.innerWidth;o=Utilities.IE?document.documentElement.scrollTop:window.pageYOffset;sl=Utilities.IE?document.documentElement.scrollLeft:window.pageXOffset;i=o+c;k=sl+g;if(m.bottom>i){n=i-m.bottom;j.style.top=(b=l+n)+"px"}if(m.right>k){n=k-m.right;j.style.left=(h=f+n)+"px"}m=Utilities.getAbsPosition(j,null,true);if(m.top<0){b-=m.top}j.style.top=b+"px";if(m.left<0){h-=m.left}j.style.left=h+"px"},Close:function(){this.docElement.className="UploadPopupShrink";UploadAjax.popupsOpen--;if(UploadAjax.popupsOpen>0){return}UploadAjax.popupsOpen=0;if(this.getOption("reloadOnClose",false)){document.location.reload()}},PopupOk:function(){this.xdomAjax.sendRequest("xdomExtension="+UploadAjax.xdomExtension,this.setParams(this.action,this.targetID))},getOption:function(a,c){var b=this.options;return(b&&b[a])?b[a]:c},serverResponse:function(c,b){var a=c.err=="0";if(!a){return}switch(c.errmsg){case"delete_ok":case"manage_ok":this.Close(null);if(UploadAjax.popupsOpen>0){return}UploadAjax.popupsOpen=0;UploadAjax.Link(UploadAjax.contentID,this.okAction,this.arg);break;case"upload_status":this.uploadStatus(c,b);break;default:}},addUploadForm:function(){var x=this.bodyElement;var p=this.formNo++;var m=this.ctlID+"_form"+p;var a=UploadAjax.session+m;var r=m+"_iframe";var s,v,j,k,u,h,c;var g=Utilities.IE;this.uploads[p]=k=new Object();for(var e=x.lastChild;e.tagName!="BUTTON";e=e.previousSibling){}var i=Utilities.IE67?"className":"class";var w="/cgi-bin/upload.cgi?sID="+a;if(g){s=x.insertBefore(document.createElement('<form action="'+w+'" method="POST" enctype="multipart/form-data" id="'+m+'" name="'+m+'" target="'+r+'"></form>'),e)}else{s=x.insertBefore(document.createElement("form"),e);s.setAttribute("action",w);s.setAttribute("id",m);s.setAttribute("target",r);s.setAttribute("name",m);s.setAttribute("enctype","multipart/form-data");s.setAttribute("method","post")}if(g){u=s.appendChild(document.createElement('<table style="margin:0px">'))}else{u=s.appendChild(document.createElement("table"))}h=u.appendChild(document.createElement("tbody"));c=h.appendChild(document.createElement("tr"));var q=c.appendChild(document.createElement("td"));var o=c.appendChild(document.createElement("td"));var l=c.appendChild(document.createElement("td"));v=document.createElement("div");s.statusBox=v;v.setAttribute(i,"UploadUploadProgressStatus");v.appendChild(document.createTextNode("Status"));l.appendChild(v);k.statusBox=v;v=document.createElement("div");v.setAttribute(i,"UploadUpdateProgress");v.appendChild(j=document.createElement("div"));j.setAttribute("id",a+"_progress");j.setAttribute(i,"UploadUploadProgressBar");o.appendChild(v);k.progressBar=j;if(g){j=q.appendChild(document.createElement('<input type="file" name="file'+p+'"> name="id'+p+'">'))}else{j=document.createElement("input");j.setAttribute("type","file");j.setAttribute("name","file"+p);j.setAttribute("id","file"+p);q.appendChild(j)}j.UploadPopup=this;j.UploadFormNo=p;j.onchange=function(){var A=this.value,y=this.UploadPopup,f=y.types,z=y.uploads[this.UploadFormNo];y.hasEmptyForm=false;if(A.indexOf("/")>-1){A=A.substring(A.lastIndexOf("/")+1,A.length)}else{A=A.substring(A.lastIndexOf("\\")+1,A.length)}if(f){var d=false;var t=A.substring(A.lastIndexOf(".")+1,A.length).toLowerCase();for(var b in f){if(f[b]==t){d=true}}if(!d){z.statusBox.innerHTML="Incorrect file type";z.status="failed";z.progressBar.style.width="10em";z.progressBar.style.backgroundColor="red";this.disabled=true;y.addUploadForm();return}}z.file=A;z.active=true;z.status="uploading";y.SubmitForm(this.form);this.disabled=true};k.file="";k.ID=a;k.form=s;k.status="created";k.active=false;if(!Utilities.IE){j=document.createElement("iframe");j.setAttribute("id",m+"_iframe");j.setAttribute(i,"UploadUploadIframe");j.setAttribute("src","/images/blank.gif");j.setAttribute("name",m+"_iframe");x.insertBefore(j,e)}this.hasEmptyForm=true},SubmitForm:function(b){var d=document.createTextNode("Uploading..."),e=b.statusBox,a,c;while(a=e.firstChild){e.removeChild(a)}e.appendChild(d);if((c=this.notifyObj)&&c.SubmitForm){c.SubmitForm(this,b)}b.submit();this.getUploadStatus();if(this.getOption("multipleUploads")){this.addUploadForm()}},setParams:function(a){this.parameters="callback="+UploadAjax.callbackClass+"&controlID="+this.ctlID+"&controlValue="+encodeURIComponent(this.target)+"&parameter="+a+"&arg="+encodeURIComponent(this.arg);return this.parameters},getUploadStatus:function(){var c="",d,a;for(var b=0;b<this.uploads.length;b++){d=this.uploads[b];if(!d.active){continue}c+="&request["+b+"][id]="+d.ID;c+="&request["+b+"][file]="+encodeURIComponent(d.file)}if(!c){return}c=this.setParams("upload_status")+c;if(a=this.getOption("customExtension",false)){c+="&uploadXdomExtension="+a}if(a=this.getOption("customCallback",false)){c+="&uploadCallback="+a}if(a=this.getOption("keepSpaces",false)){c+="&keepSpaces=1"}if(a=this.getOption("replaceExisting",false)){c+="&replaceExisting=1"}if(a=this.getOption("customParameters",false)){c+="&customParameters="+encodeURIComponent(a)}if(this.notifyObj&&this.notifyObj.uploadStatusRequest){c=this.notifyObj.uploadStatusRequest(this,c)}this.xdomAjax.sendRequest("xdomExtension="+UploadAjax.xdomExtension,c)},uploadStatus:function(g,d){var c=true,l,k,a;for(var f=0;f<this.uploads.length;f++){l=this.uploads[f];k=l.statusBox;if(!l.active){continue}var h=xdom_GetFirstElementWithTagName(d,"status"+f);if(!h){continue}if(!(h.getAttribute("value")=="0")){l.active=false;l.status="failed";l.progressBar.style.backgroundColor="red";while(a=k.firstChild){k.removeChild(a)}k.appendChild(document.createTextNode(xdom_GetData(h)));if(!this.getOption("multipleUploads")){this.addUploadForm()}continue}var j=h.getAttribute("progress");var n=h.getAttribute("current_size");var b=h.getAttribute("status");l.progressBar.style.width=(j/10)+"em";if(b=="done"){l.active=false;l.status="done";while(a=k.firstChild){k.removeChild(a)}k.appendChild(document.createTextNode("Upload complete."));if(this.notifyObj){this.notifyObj.uploadComplete(this,h,this.notifyParms)}if(this.getOption("autoClose")){this.Close()}continue}while(a=k.firstChild){k.removeChild(a)}k.appendChild(document.createTextNode("Uploading ("+j+"%)..."));c=false}if(!c){var m=this;this.timerVar=setInterval(function(){m.getUploadStatus()},2000)}}};