if(typeof BPTool=="undefined"||!BPTool){var BPTool={}}BPTool.Uploader=typeof BPTool.Uploader!="undefined"&&BPTool.Uploader?BPTool.Uploader:function(){var A=1;var C=false;var G;var S={UPLOAD:"uploaded",ADD:"add",REMOVE:"remove",SELECT:"select",UNSELECT:"unselect"};var I={TOOBIG:"toobig",TOOMANY:"toomany",MIMETYPE:"mimeType"};var J=0;var M=0;var H={};var P='<div style="position:relative; width:100%; height:100%; padding:0; background:{uploadBackground}; font:{uploadFont}">    <div style="color:{uploadColor};">        <div style="position:absolute; top:10px; left:32px;">{fileLabel}</div>        <div style="position:absolute; top:10px; right:110px;">{sizeLabel}</div>        <div style="position:absolute; top:10px; right:24px;">{removeLabel}</div>    </div>    <div id="{dzid}" style="position:absolute; top:24px; left:16px; {filesWidth}; {filesHeight}; border:{fileBorder}; background:{fileBackground}; overflow-y:auto;overflow-x:hidden;">        {files}    </div>    <div id="{dzid}_progress" style="visibility:hidden; position:absolute; top:25px; left:17px; {filesWidth}; {filesHeight}; background:{progressBackground};{overlayOpacity};">        <div style="position:absolute; top:{zipTop}; left:0; right:0; height:40px; border-top:1px solid {progressBarColor}; border-bottom:1px solid {progressBarColor}; background:{progressBarBackground};"></div>        <div id="{dzid}_progbar"   style="position:absolute; top:{zipTop}; left:0; width:0; height:40px; border-top:1px solid {progressBarColor}; border-bottom:1px solid {progressBarColor}; background:{progressBarColor};"></div>        <div id="{dzid}_progtext"  style="position:absolute; top:{zipTop}; left:0; right:0; height:40px; color:{progressTextColor}; font-size:32px; text-align:center;"></div>    </div>    <div style="position:absolute; bottom:16px; left:16px; {filesWidth}; height:29px; border:{footerBorder}; color:{footerColor}; background:{footerBackground}; font:{footerFont};">        <div style="position:absolute; bottom:7px; left:10px; width:200px;">{numfiles}</div>        <div style="position:absolute; bottom:7px; left:64px; width:200px; "><a id="{browseButton}" style="color:{footerColor};" href="#">{browseLabel}</a></div>        <div style="position:absolute; bottom:7px; right:80px;">{totalLabel}: {total}</div>        <div style="position:absolute; bottom:7px; right:5px; visibility:{vupload};"><a id="{uploadButton}" style="color:{footerColor};" href="#">{uploadLabel}</a></div>    </div></div>';var D='<div id="{dzid}_file{index}" style="position:relative; width:100%; height:20px; color:{fileColor};cursor:default;">   <div style="position:absolute; top:5px; left: 10px;">{fname}</div>   <div style="position:absolute; top:5px; right:80px;">{fsize}</div>   <div title="{removeHelp}" class="{dzid}_remove" style="position:absolute; top:7px; right:22px; width:10px; height:10px;background:transparent url(http://l.yimg.com/g/images/upload/trash_can.gif) no-repeat; margin-left:15px; text-decoration:none;"></div></div>';var O='<div style="width:100%; height:100%; padding:0; background:#f7f7f7; font-size:10pt; font-family:Tahoma,Verdana,Arial,Sans-Serif;">    <div style="padding:20px;">        To use the advanced uploader you must first install Yahoo BrowserPlus&trade;.         <a target="_blank" href="{url}">Click here</a> to install BrowserPlus.          Installation will take just a few minutes and not require a browser restart.    </div></div>';var K='<div style="position:relative; width:100%; height:100%; padding:0; background:#f7f7f7; font-family:Arial,Sans-Serif;"">    <div style="position:absolute; top:16px; left:16px; bottom:16px; right:16px; background:#fff; border:1px solid #ccc;">        <div style="position:relative; top:15px; left:20px; font-size:11pt; font-weight:bold; ">Loading Advanced Uploader...</div>        <div style="position:absolute; top:35px; right:20px; left:20px; height:17px; border:1px solid #e4e4e4;width:200px;">           <div style="width:{percentage}%; height:17px; background:#666;"></div>        </div>    </div></div>';var R='<div style="position:relative; width:100%; height:100%; background:#f7f7f7; font-size:10pt; font-family:Tahoma,Verdana,Arial,Sans-Serif;">    <div style="padding:20px;">        <div style="font-weight:bold; padding:0 0 16px 0">Error loading Yahoo! BrowserPlus&trade;</div>        <div style="padding:0 0 10px 0;">Please report this error to the website administrator:</div>        <div style="padding:8px; background:#ddd; font-family:monospace;font-size:9pt;">{error}</div>    </div></div>';function T(){return"ybpt_uploader_dz_"+A++}function Q(g,V){var Z,Y,X,c,d,f,b=[],W,a=" ",U="{",e="}";for(;;){Z=g.lastIndexOf(U);if(Z<0){break}Y=g.indexOf(e,Z);if(Z+1>=Y){break}W=g.substring(Z+1,Y);c=W;f=null;X=c.indexOf(a);if(X>-1){f=c.substring(X+1);c=c.substring(0,X)}d=V[c];g=g.substring(0,Z)+d+g.substring(Y+1)}for(Z=b.length-1;Z>=0;Z=Z-1){g=g.replace(new RegExp("~-"+Z+"-~"),"{"+b[Z]+"}","g")}return g}function F(U){if(U){return(typeof U.length==="number"&&isFinite(U.length)&&typeof U.splice==="function")}return false}function E(U){return(U&&(typeof U==="object"||typeof U==="function"))||false}function L(W,V){var U;for(U=0;U<V.length;U++){if(W[V[U]]===1){return true}}return false}function N(U){var V,W={};for(V=0;V<U.length;V++){W[U[V]]=1}return W}function B(W,V){var U;if(V){for(U in V){if(V.hasOwnProperty(U)&&W.hasOwnProperty(U)){W[U]=V[U]}}}return W}return{create:function(X,Y){var V=X;var W=null;var U={uploadUrl:null,fileVarName:"file",zipFiles:false,fileCB:null,postCB:null,constraintCB:null,uploadCB:null,maxFileSize:0,maxFiles:0,mimeTypes:null,uploadBackground:"#f7f7f7",uploadFont:"8pt tahoma,sans-serif",uploadColor:"#666",fileLabel:"File",filesLabel:"Files",sizeLabel:"Size",removeLabel:"Remove?",removeHelp:"Remove file from list",fileBorder:"1px solid #ccc",fileBackground:"#fff",fileColor:"#666",selectBackground:"#006adb",selectColor:"#fff",hoverBackground:"#ffd",progressBackground:"#def",progressTextColor:"#000",progressBarColor:"#b3b3b3",progressBarBackground:"#fff",progressComplete:"Upload Complete!",footerBackground:"#eee",footerFont:"bold 8pt tahoma,sans-serif",footerBorder:"1px solid #ccc",footerColor:"#000",browseLabel:"Browse...",uploadLabel:"Upload",totalLabel:"Total"};if(typeof X!="string"){throw"BPTool.Uploader.create() requires a string argument which is the id of a div into which an advanced uploader is rendered."}U=B(U,Y);if(F(U.mimeTypes)&&U.mimeTypes.length>0){W=N(U.mimeTypes)}G=[{service:"Uploader",version:"3"},{service:"DragAndDrop",version:"1"},{service:"FileBrowse",version:"1"}];if(U.zipFiles){G.push({service:"Zipper",version:"1"})}return function(){var h=T();var e=h+"browse";var b=h+"upload";var k=[];var r=null;function n(x){var w,v=[" B"," KB"," MB"," GB"," TB"];for(w=0;x>1024;w++){x/=1024}return Math.round(x*10)/10+v[w]}function j(v){return h+"_"+v.BrowserPlusHandleID}function t(v,x,y,w){if(y==undefined){y=true}if(U.fileCB){U.fileCB({success:y,action:x,name:v.name,size:v.size,mimeType:v.mimeType,id:V,uuid:j(v),value:w})}}function q(v,w){if(U.constraintCB){U.constraintCB({constraint:w,name:v.name,size:v.size,mimeType:v.mimeType,id:V})}}function c(){var w=document.getElementById(h);var v=document.createTextNode(".");w.appendChild(v);w.removeChild(v)}function f(v){var w=document.getElementById(X);if(!w){throw ("No such id: '"+X+'"')}w.innerHTML=Q(O,{url:v})}function l(v){var w=document.getElementById(X);if(!w){throw ("No such id: '"+X+'"')}w.innerHTML=Q(R,{error:v})}function o(v){var w=document.getElementById(X);if(!w){throw ("No such id: '"+X+'"')}w.innerHTML=Q(K,{percentage:v.totalPercentage})}function Z(x,w){var v=document.getElementById(x);if(w){v.className=h+"_selected";v.style.backgroundColor=U.selectBackground;v.style.color=U.selectColor}else{v.className="";v.style.backgroundColor="";v.style.color=U.fileColor}}function p(z){var v,y,x;if(C){return}for(var w=0;w<z.length;w++){x=z[w];if(U.maxFiles>0&&k.length>=U.maxFiles){q(x,I.TOOMANY);break}if(U.maxFileSize>0&&x.size>U.maxFileSize){q(x,I.TOOBIG);continue}if((!W||L(W,x.mimeType))&&x.mimeType!="application/x-folder"){t(x,S.ADD);x.bytesSent=0;k.push(x)}else{if(W&&!W[x.mimeType]){q(x,I.MIMETYPE);continue}}}s()}function u(v){var w=document.getElementById(h);w.style.background=v?U.hoverBackground:U.fileBackground;c()}function i(z){var x,v,w,y;if(!C){z=z||window.event;x=z.target||z.srcElement;if(x&&3==x.nodeType){x=x.parentNode}if(x.className==(h+"_remove")){v=x.parentNode.id.match(/[0-9]+$/);if(v[0]){if(r){t(k[r.match(/[0-9]+$/)[0]],S.UNSELECT);r=null}t(k[v[0]],S.REMOVE);k.splice(v[0],1);s()}}else{w=new RegExp(h+"_file[0-9]+");y=null;if(w.test(x.id)){y=x}else{if(w.test(x.parentNode.id)){y=x.parentNode}}if(y){if(r){Z(r,false);t(k[r.match(/[0-9]+$/)[0]],S.UNSELECT);if(y.id!=r){Z(y.id,true);r=y.id;t(k[r.match(/[0-9]+$/)[0]],S.SELECT)}else{r=null}}else{Z(y.id,true);r=y.id;t(k[r.match(/[0-9]+$/)[0]],S.SELECT)}}else{if(r){Z(r,false);t(k[r.match(/[0-9]+$/)[0]],S.UNSELECT);r=null}}}}}function d(v){var w=U.mimeTypes?{mimeTypes:U.mimeTypes}:{};BrowserPlus.FileBrowse.OpenBrowseDialog(w,function(x){if(x.success){p(x.value)}});return false}function m(v){if(U.uploadUrl){if(r){Z(r,false);t(k[r.match(/[0-9]+$/)[0]],S.UNSELECT);r=null}if(document.getElementById(b)){document.getElementById(b).style.visibility="hidden"}document.getElementById(h+"_progress").style.visibility="visible";document.getElementById(h+"_progbar").style.background=U.progressBarColor;if(U.zipFiles){BrowserPlus.Zipper.createZip({files:k},function(w){if(w.success){k=[w.value.zipFile]}g()})}else{g()}return false}}function s(){var z,v="",AE,w=0,AF,y,x,AD,AC,AB,AA;x=document.getElementById(X);y=x.offsetHeight?("height:"+(x.offsetHeight-72)+"px"):"bottom:48px";AF=x.offsetWidth?("width:"+(x.offsetWidth-32)+"px"):"right:16px";AB=((x.offsetHeight-115)/2)+"px";if(H.opacity){AA="opacity: 0.75"}else{AA="filter=alpha(opacity=75)"}for(z=0;z<k.length;z++){AE="";if(k[z].size){AE=n(k[z].size);w+=k[z].size}v+=Q(D,{index:z,fname:k[z].BrowserPlusHandleName,fsize:AE,dzid:h,removeHelp:U.removeHelp,fileColor:U.fileColor})}J=w;AD={filesHeight:y,filesWidth:AF,dzid:h,browseButton:e,uploadButton:b,numfiles:k.length+" "+(k.length===1?U.fileLabel:U.filesLabel),total:n(w),vupload:(k.length>0&&!C?"visible":"hidden"),overlayOpacity:AA,zipTop:AB,files:v};for(AC in U){if(U.hasOwnProperty(AC)){AD[AC]=U[AC]}}x.innerHTML=Q(P,AD);BrowserPlus.DragAndDrop.RemoveDropTarget({id:h},function(){BrowserPlus.DragAndDrop.AddDropTarget({id:h},function(AG){if(AG.success){BrowserPlus.DragAndDrop.AttachCallbacks({id:h,hover:u,drop:p},function(){})}})});document.getElementById(h).onclick=i;document.getElementById(e).onclick=d;document.getElementById(b).onclick=m;if(r){Z(r,true)}}function a(z){var y=z.id.match(/[0-9]+$/)[0];var x=k.length;var AA=document.getElementById(h+"_progbar");var v=document.getElementById(h+"_progtext");var w=true;return{progress:function(AE){var AD,AC=0,AB;k[y].bytesSent=AE.fileSent;for(AD=0;AD<x;AD++){AC+=k[AD].bytesSent}AB=""+(Math.min(100,Math.round(AC/J*100)))+"%";AA.style.width=AB;v.innerHTML=AB;c()},complete:function(AB){if(!AB.success){w=false}M++;t(k[y],S.UPLOAD,AB.success,AB.value);if(M==x){if(U.uploadCB){U.uploadCB({success:w,id:V})}v.innerHTML=U.progressComplete;setTimeout(function(){AA.style.width="0%";v.innerHTML="";k=[];s()},3000);C=false}}}}function g(){var x,y,v,z,AA,w;C=true;M=0;if(k.length==1){J=k[0].size}for(x=0;x<k.length;x++){y=document.getElementById(h+"_file"+x);z={};z[U.fileVarName]=k[x];v=a(y);AA={url:U.uploadUrl,progressCallback:v.progress,files:z,cookies:document.cookie};if(U.postCB){w=U.postCB(j(k[x]));if(E(w)){AA.postvars=w}}BrowserPlus.Uploader.upload(AA,v.complete)}}return{render:function(){var w=document.documentElement,v,x=document.createElement("div");x.style.display="none";x.innerHTML='<a href="/a" style="opacity:.5;"></a>';document.body.appendChild(x);v=x.getElementsByTagName("a")[0];H.opacity=v.style.opacity==="0.5";document.body.removeChild(x);BrowserPlus.init({},function(y){if(y.success){BrowserPlus.require({services:G,progressCallback:o},function(z){if(z.success){s()}else{var AA=z.verboseError?z.verboseError:z.error;l("problem loading services: "+AA)}})}else{if(y.error==="bp.notInstalled"){f("http://browserplus.yahoo.com/install")}}})}}}()}}}();