                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
if(!window.__td){window.__MT=100;window.__ti=0;window.__td=[];window.__td.length=__MT;window.__noTrace=false;



}







if(typeof vp=="undefined")
{
var vp={};
}





if(!vp.upload)
{
vp.upload=function upload(){if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}};
}





vp.upload.Queue=function upload_Queue()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var me=this;

var MAX_SIMULTANEOUS_UPLOADS=1;





var _aUploadQueue=new Array();





var _iUploadCounter=0;





var _aUploadsStarted=new Array();





var _aUploadsFinished=new Array();





var _aUploadsCompleted=new Array();





var _bIsUploading=false;





var _bIsProcessing=false;





this.onstatuschange=new vp.events.CustomEvent(me,"onstatuschange");





this.pushUpload=function pb_this_pushUpload(oNewUpload)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

oNewUpload.ontransferfinish.addHandler(onUploadFinish);
oNewUpload.oncomplete.addHandler(onUploadComplete);


_aUploadQueue.push(oNewUpload);
_iUploadCounter++;


oNewUpload.id=_iUploadCounter;
oNewUpload.initialize();


showMultiUploadTip(oNewUpload);


checkQueue();
};




var checkStatus=function pv_checkStatus()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}


var bUploading=(_aUploadsStarted.length-_aUploadsFinished.length)>0;
var bProcessing=(_aUploadsFinished.length-_aUploadsCompleted.length)>0;

if(bUploading!=_bIsUploading||bProcessing!=_bIsProcessing)
{

_bIsUploading=bUploading;
_bIsProcessing=bProcessing;


var e={};
e.uploading=bUploading;
e.processing=bProcessing;
me.onstatuschange.fire(e);


if(vp.upload.showDebugInfo)
{
vp.debug.trace("queue status change: uploading="+bUploading+", processing="+bProcessing);
}
}
};




var checkQueue=function pv_checkQueue()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var iUploadsTransferring=_aUploadsStarted.length-_aUploadsFinished.length;
if(iUploadsTransferring<MAX_SIMULTANEOUS_UPLOADS&&_aUploadQueue.length>0)
{

var startUpload=_aUploadQueue.shift();


_aUploadsStarted.push(startUpload);


checkStatus();


startUpload.start();
}
};





var onUploadFinish=function pv_onUploadFinish(e)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

ensureFinishedQueue(e);


checkStatus();
};





var onUploadComplete=function pv_onUploadComplete(e)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
if(e.result&&e.result.cancel)
{

if(!_aUploadsStarted.contains(e.target))
{

_aUploadQueue.removeValue(e.target);
}
else
{

ensureFinishedQueue(e);
ensureCompletedQueue(e);
}
}
else
{

ensureFinishedQueue(e);
ensureCompletedQueue(e);
}


checkStatus();
};






var ensureFinishedQueue=function pv_ensureFinishedQueue(e)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

if(!_aUploadsFinished.contains(e.target))
{
_aUploadsFinished.push(e.target);


checkQueue();
}
};





var ensureCompletedQueue=function pv_ensureCompletedQueue(e)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

if(!_aUploadsCompleted.contains(e.target))
{
_aUploadsCompleted.push(e.target);
}
};





var cancelAllUploads=function pv_cancelAllUploads(e)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

var oCurrentUpload;


for(var i=0;i<_aUploadsStarted.length;i++)
{
oCurrentUpload=_aUploadsStarted[i];


if(!_aUploadsCompleted.contains(oCurrentUpload))
{
oCurrentUpload.cancel();
}
}
};






var _iMultiUploadTipTimer;




var MULTI_UPLOAD_TIP_DELAY=5000;





var showMultiUploadTip=function pv_showMultiUploadTip(oNewUpload)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
if(_iUploadCounter>1)
{

if(_iMultiUploadTipTimer)
{
clearTimeout(_iMultiUploadTipTimer);
}
}
else if(_iUploadCounter==1)
{

var oTipContentElement=vp.ui.get('divMultiUploadTip');
var oTipTargetElement=null;


if(oNewUpload.manager.repetitionType==vp.upload.RepetitionType.Multiple)
{

oTipTargetElement=oNewUpload.manager.oFileInputContainer;
}
else
{

try
{
var jContainer=$(oNewUpload.manager.oFileInputContainer);
var iContainerNumber=parseInt(jContainer.attr('class').match(/fileUploadInputContainer(\d+)/)[1]);
var sNextClassSelector='.fileUploadInputContainer'+(iContainerNumber+1);
oTipTargetElement=$(sNextClassSelector).get(0);
}
catch(ex){}
}


if(oTipTargetElement&&oTipContentElement)
{
var fnShowTip=function pv_fnShowTip()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var oTooltip=new vp.widget.RichTooltip(this.targetElement,this.contentElement);
oTooltip.skin=vp.widget.RichTooltip.skins.Message;
oTooltip.setBehavior(window.TOOLTIP_BEHAVIOR_HIDE_ON_CLICK);
oTooltip.show({});

vp.upload.multiUploadTooltip=oTooltip;


}.getClosure({
targetElement:oTipTargetElement,
contentElement:oTipContentElement
});

_iMultiUploadTipTimer=setTimeout(fnShowTip,MULTI_UPLOAD_TIP_DELAY);
}
}
};





var oDialog=vp.dialog.getCurrent();

if(oDialog)
{

vp.events.add(window,'unload',cancelAllUploads);
}

};
if(!window.__td){window.__MT=100;window.__ti=0;window.__td=[];window.__td.length=__MT;window.__noTrace=false;



}








if(typeof vp=="undefined")
{
var vp={};
}





if(!vp.upload)
{
vp.upload=function upload(){if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}};
}







vp.upload.pageQueue=new vp.upload.Queue();







vp.upload.managerMap={};







vp.upload.configurationMap={};






vp.upload.progressTemplateIds={};






vp.upload.showDebugInfo=false;
if(document.location.href.indexOf('debugupl=1')>=0)
{
vp.upload.showDebugInfo=true;
}






vp.upload.useFlash=false;






vp.upload.disableFlash=false;
if(document.location.href.indexOf('noflash=1')>=0)
{
vp.upload.disableFlash=true;
}






vp.upload.loggedMultiRenderEvent=false;






vp.upload.largeUpload=false;





vp.upload.multiUploadTooltip=null;





vp.upload.multiSelectTooltip=null;






vp.upload.ProgressType=
{
Page:1,
Area:2,
Bar:3,
Box:4
};





vp.upload.RepetitionType=
{
Multiple:1,
MultipleCancel:2
};





vp.upload.EmptyInputAction=
{
None:1,
DisableUploadButton:2,
DisplayWarningMessage:3
};








vp.upload.createFileInput=function upload_createFileInput(iSize,bBrowseOnly)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

var iOpenIdCount=1;
var sOpenIdBase='fileUploadInput';
var sOpenId=sOpenIdBase;
while(vp.ui.get(sOpenId))
{
iOpenIdCount++;
sOpenId=sOpenIdBase+iOpenIdCount.toString();
}

var oFileInput=vp.ui.createNamedElement('input',sOpenId);
oFileInput.type='file';
oFileInput.id=sOpenId;
oFileInput.size=bBrowseOnly?1:iSize;
vp.ui.addClass(oFileInput,sOpenId);


var oInputContainer=document.createElement('span');
oInputContainer.id=sOpenId+"Container";
vp.ui.addClass(oInputContainer,"upload-input");
vp.ui.addClass(oInputContainer,sOpenIdBase+"Container"+iOpenIdCount);

if(bBrowseOnly)
{
if(vp.browser.isIE)
{
vp.ui.addClass(oInputContainer,"upload-input-ie");
}
if(vp.browser.isGecko)
{
vp.ui.addClass(oInputContainer,vp.browser.OS.isMac?"upload-input-gecko-mac":"upload-input-gecko");
}
if(vp.browser.isWebKit)
{
vp.ui.addClass(oInputContainer,vp.browser.OS.isMac?"upload-input-safari-mac":"upload-input-safari");
}






}

oInputContainer.appendChild(oFileInput);
return oInputContainer;
};










vp.upload.openMyImages=function upload_openMyImages(fnUploadCallback,fnLogoCallback,fnCaricatureCallback)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

var oMyImagesUrl=new vp.web.URL("/vp/ns/myimages.aspx?enable_buttons=false");



var aSearchTypes=new Array();
if(fnUploadCallback)
{
aSearchTypes.push("upload");
oMyImagesUrl.setItem("upload_cbid",vp.win.createCallbackHandler(fnUploadCallback));
}
if(fnLogoCallback)
{
aSearchTypes.push("logo");
oMyImagesUrl.setItem("logo_cbid",vp.win.createCallbackHandler(fnLogoCallback));
}
if(fnCaricatureCallback)
{
aSearchTypes.push("caricature");
oMyImagesUrl.setItem("caric_cbid",vp.win.createCallbackHandler(fnCaricatureCallback));
}
oMyImagesUrl.setItem("search_type",aSearchTypes.join(','));


var oSignInUrl=new vp.web.URL("/vp/ns/mini_sign_in.aspx?registered_user=1&dialog=1");
oSignInUrl.setItem("rurl",oMyImagesUrl);

vp.dialog.IFrameDialog.open(
'myimages',
vp.upload.dialogTitleMyImages,
oSignInUrl.toString(),
vp.dialog.chrome.Primary,
595,
400);
};








vp.upload.openLibraryImages=function upload_openLibraryImages(fnLibraryCallback)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

var oImageGalleryUrl=new vp.web.URL("/vp/ns/image_library_search.aspx");



var iLibraryCallbackId=vp.win.createCallbackHandler(fnLibraryCallback);
oImageGalleryUrl.setItem("image_cbid",iLibraryCallbackId);

vp.dialog.IFrameDialog.open(
'libraryimages',
vp.upload.dialogTitleImageLibrary,
oImageGalleryUrl.toString(),
vp.dialog.chrome.Primary,
540,
200);
};











vp.upload.openCrop=function upload_openCrop(fnCropCallback,iImageId,bIsUpload,oCropInfo,fAspectRatio)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var bContainer=(fAspectRatio)?true:false;


var fnWrappedCallback;
if(bContainer)
{
fnWrappedCallback=function(sContainerId,iImageType,iImageId,oCropInfo,oSizeDelta)
{
this.cb(oCropInfo);
}
.getClosure({cb:fnCropCallback});
}
else
{
fnWrappedCallback=function(iImageType,iImageId,oCropInfo,fNewAspectRatio)
{
this.cb(oCropInfo);
}
.getClosure({cb:fnCropCallback});
}



var iCropCallbackId=vp.win.createCallbackHandler(fnWrappedCallback);


var oCropUrl=new vp.web.URL("/vp/ns/croptool.aspx");
oCropUrl.setItem(bContainer?"change_handler_id":"add_handler_id",iCropCallbackId);

oCropUrl.setItem("imgId",iImageId);
oCropUrl.setItem("type",bIsUpload?"upload":"image");
if(oCropInfo)
{
oCropUrl.setItem("croptop",oCropInfo.top);
oCropUrl.setItem("cropleft",oCropInfo.left);
oCropUrl.setItem("cropright",oCropInfo.right);
oCropUrl.setItem("cropbottom",oCropInfo.bottom);
}
if(bContainer)
{
oCropUrl.setItem("container_id","anyvalue");
oCropUrl.setItem("container_aspect_ratio",fAspectRatio);
oCropUrl.setItem("hide_maintain_proportions","true");
}



vp.dialog.IFrameDialog.open(
'cropimage',
vp.upload.dialogTitleCropImage,
oCropUrl.toString(),
vp.dialog.chrome.Primary,
bContainer?650:400,
450);
};

if(!window.__td){window.__MT=100;window.__ti=0;window.__td=[];window.__td.length=__MT;window.__noTrace=false;



}










if(typeof vp=="undefined")
{
var vp={};
}





if(!vp.upload)
{
vp.upload=function upload(){if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}};
}







vp.upload.Upload=function upload_Upload(oManager,sFilePath)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var me=this;





this.manager=oManager;





this.id=-1;





this.filePath=sFilePath;





this.fid=vp.upload.serverGuid+"."+Math.random();





this.transferring=false;





this.oninit=new vp.events.CustomEvent(me,"oninit");





this.ontransferstart=new vp.events.CustomEvent(me,"ontransferstart");





this.ontransferprogress=new vp.events.CustomEvent(me,"ontransferprogress");





this.ontransferfinish=new vp.events.CustomEvent(me,"ontransferfinish");






this.oncomplete=new vp.events.CustomEvent(me,"oncomplete");


var _oTestTimer;




this.initialize=function pb_this_initialize()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
me.oninit.fire();
};




this.start=function pb_this_start()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

var finishFn=function pv_finishFn()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
this.upl.ontransferfinish.fire();
this.upl.oncomplete.fire();
}
.getClosure({upl:me});
_oTestTimer=setTimeout(finishFn,10000);

me.ontransferstart.fire();
};




this.cancel=function pb_this_cancel()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

clearTimeout(_oTestTimer);

me.fireCancelEvent();
};





this.fireCancelEvent=function pb_this_fireCancelEvent()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var e={};
e.result={};
e.result.cancel=true;
me.oncomplete.fire(e);
};






this.fireErrorEvent=function pb_this_fireErrorEvent(oResult)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

if(!oResult)
{
oResult=vp.upload.resultErrorGeneral;
}

var e={};
e.result=oResult;
me.oncomplete.fire(e);
};





this.getFileName=function pb_this_getFileName()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var fileName=me.filePath.trim();
var lastSlashIndex=Math.max(fileName.lastIndexOf('/'),fileName.lastIndexOf('\\'));
if(lastSlashIndex>=0)
{
fileName=fileName.substring(lastSlashIndex+1);
}


return fileName;
};





this.sendToImageServices=function pb_this_sendToImageServices()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}


if(oManager.configuration.canUseImageServices&&
isFileSupportedByImageServices())
{
return true;
}

return false;

};

var isFileSupportedByImageServices=function pv_isFileSupportedByImageServices()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}


var startOfExtension=me.filePath.lastIndexOf('.');
if(startOfExtension>=0)
{
if(me.filePath.length>startOfExtension+1)
{
var ext=me.filePath.substr(startOfExtension+1).toLowerCase();

if(vp.upload.imageServicesExtensions.contains(ext,false))
{
return true;
}
}
}


return false;

};




this.getNextPostUrl=function pb_this_getNextPostUrl(sHostname)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

if(vp.crossdomain.isImageServer(sHostname))
{
var nextImageServer=vp.crossdomain.getNextImageServer(sHostname);
if(nextImageServer===null)
{

return vp.upload.normalPostUrl;
}


var oUrl=new vp.web.URL(vp.upload.imageServicesPostUrl);

oUrl.hostname=nextImageServer;
oUrl.host=nextImageServer;

return oUrl.toString();

}

return null;

};





this.determinePostUrlToUse=function pb_this_determinePostUrlToUse(sUrl)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var oPostUrl=new vp.web.URL(sUrl);

var foundUrlToUse=false;
while(!foundUrlToUse)
{
if(vp.crossdomain.isImageServer(oPostUrl.hostname))
{

if(vp.crossdomain.isImageServerKnownBad(oPostUrl.hostname))
{

var nextUrl=me.getNextPostUrl(oPostUrl.hostname);
if(nextUrl)
{

oPostUrl=new vp.web.URL(nextUrl);
}
else
{

return null;
}

}
else
{
foundUrlToUse=true;
}
}
else
{
foundUrlToUse=true;
}
}

return oPostUrl;

};

this.logFailoverEvent=function pb_this_logFailoverEvent(sImplementation)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
vp.logger.logError(Math.random(),sImplementation,"vp.upload.upload: client-side image failover invoked",vp.logger.Severity.Warning);
};

};






vp.upload.IFrameUploads=new Array();











vp.upload.IFrameUpload=function upload_IFrameUpload(oManager,sFilePath,oForm,sPostQueryString)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var me=this;





this.inheritFrom=vp.upload.Upload;
this.inheritFrom(oManager,sFilePath);





var _oIFrameWrapper=new vp.crossdomain.IFrameWrapper();





var _oForm=oForm;





var _sPostQueryString=sPostQueryString;





var _oProgressTracker=null;

var currentPostUrl=null;




this.initialize=function pb_this_initialize()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}


_oForm.method="post";
_oForm.encoding="multipart/form-data";


vp.upload.IFrameUploads[me.id]=me;


me.oninit.fire();
};




var stopPost=function pv_stopPost()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
if(me.transferring)
{
me.transferring=false;


if(_oProgressTracker)
{
_oProgressTracker.cancel();
}

_oIFrameWrapper.cancel();

}
};




this.start=function pb_this_start()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
me.startUploadToUrl((me.sendToImageServices()?vp.upload.imageServicesPostUrl:vp.upload.normalPostUrl));
};

this.getTrackUrlFromPostUrl=function pb_this_getTrackUrlFromPostUrl(oPostUrl)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
if(vp.crossdomain.isImageServer(oPostUrl.hostname))
{
var oTrackUrl=new vp.web.URL(vp.upload.imageServicesTrackUrl);
oTrackUrl.hostname=oPostUrl.hostname;
oTrackUrl.host=oPostUrl.hostname;
return oTrackUrl.toString();
}
else
{
return vp.upload.normalTrackUrl;
}
};

this.startUploadToUrl=function pb_this_startUploadToUrl(sUrl)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}


var oPostUrl=me.determinePostUrlToUse(sUrl);

oPostUrl.setItem("api",true);
oPostUrl.setItem("fv",vp.upload.FlashVersion.string);
oPostUrl.setItem("fid",me.fid);
oPostUrl.setItem("id",me.id);

if(vp.upload.largeUpload)
{
oPostUrl.setItem("lu",1);
}


if(_oProgressTracker)
{
_oProgressTracker.cancel();
}

try
{

me.transferring=true;
currentPostUrl=oPostUrl;
_oIFrameWrapper.sendFormAsync(new vp.web.URL(oPostUrl.toString()+_sPostQueryString),_oForm,me.completeUpload,onSendError);


_oProgressTracker=new vp.uploads.tracking.SmoothUploadTracker(
me.getTrackUrlFromPostUrl(oPostUrl),
me.fid,null,onProgressStart,onProgress,onProgressFinish);
}
catch(ex)
{




stopPost();

vp.logger.logError(Math.random(),me.filePath,"vp.upload.IFrameUpload: submit failed",vp.logger.Severity.Information);

me.fireErrorEvent(vp.upload.resultErrorBadPath);
}



};




this.cancel=function pb_this_cancel()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}


if(!vp.upload.disableLogging&&me.transferring)
{
me.manager.logCancel(me);
}


stopPost();

me.fireCancelEvent();
};




this.completeUpload=function pb_this_completeUpload(sResponse)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

var oResponse=vp.http.parseJSON(sResponse);


var ee={};
ee.result=oResponse;
me.oncomplete.fire(ee);

me.transferring=false;
};





var onSendError=function pv_onSendError(e)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

if(vp.upload.showDebugInfo)
{
alert("iframe error: "+me.id);
}

vp.logger.logError(Math.random(),me.fid,"vp.upload.IFrameUpload: iFrame error",vp.logger.Severity.Error);


if(vp.crossdomain.isImageServer(currentPostUrl.hostname))
{

vp.crossdomain.pingImageServer(currentPostUrl.hostname,

onFatalSendError,

function(){me.tryNextServer(this.currentHostname);}.getClosure({currentHostname:currentPostUrl.hostname}));

}
else
{
onFatalSendError();
}

};




this.tryNextServer=function pb_this_tryNextServer(sCurrentHostname)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

var nextPostUrl=me.getNextPostUrl(sCurrentHostname);
if(nextPostUrl)
{

me.logFailoverEvent("vp.upload.IFrameUpload");
me.startUploadToUrl(nextPostUrl);
}
else
{

me.onFinalTransferError();
}

};




var onFatalSendError=function pv_onFatalSendError()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
me.transferring=false;


me.fireErrorEvent();

};





var onProgressStart=function pv_onProgressStart(iTotalFileSize)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var e={};
e.totalFileSize=iTotalFileSize;
me.ontransferstart.fire(e);
};







var onProgress=function pv_onProgress(fReceivedFileSize,fTimeRemaining,fTransferRate)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var e={};
e.receivedFileSize=fReceivedFileSize;
e.timeRemaining=fTimeRemaining;
e.transferRate=fTransferRate;
me.ontransferprogress.fire(e);
};






var onProgressFinish=function pv_onProgressFinish(sFid,bError)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
me.ontransferfinish.fire();
};
};







vp.upload.FlashUploads=new Array();












vp.upload.FlashUpload=function upload_FlashUpload(oManager,sFilePath,iFileSize,oMovie,iMovieUploadId,sPostQueryString)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var me=this;





this.inheritFrom=vp.upload.Upload;
this.inheritFrom(oManager,sFilePath);





this.processing=false;





this.cancelled=false;




var currentPostUrl=null;




this.initialize=function pb_this_initialize()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

vp.upload.FlashUploads[me.id]=me;


try
{

oMovie.registerUpload(iMovieUploadId,me.id);

me.oninit.fire();
}
catch(ex)
{
vp.logger.logError(Math.random(),vp.upload.FlashVersion.string,"vp.upload.FlashUpload: movie.register failed",vp.logger.Severity.Error);

me.fireErrorEvent();
}
};




this.start=function pb_this_start()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

me.startUploadToUrl((me.sendToImageServices()?vp.upload.imageServicesPostUrl:vp.upload.normalPostUrl));
};

this.startUploadToUrl=function pb_this_startUploadToUrl(sUrl)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}


if(iFileSize===0)
{
me.fireErrorEvent(vp.upload.resultErrorNoFile);
return;
}
if(iFileSize>vp.upload.maxFileSize)
{
me.fireErrorEvent(vp.upload.resultErrorTooLarge);
return;
}


var oPostUrl=me.determinePostUrlToUse(sUrl);

oPostUrl.setItem("api",true);
oPostUrl.setItem("type","flash");
oPostUrl.setItem("fv",vp.upload.FlashVersion.string);
oPostUrl.setItem("fid",me.fid);
oPostUrl.setItem("id",me.id);
oPostUrl.setItem("onlyupload",true);

if(vp.upload.largeUpload)
{
oPostUrl.setItem("lu",1);
}


var sCookieSessionId=vp.cookies.getSubValue("SITE","S");
var iCookieSessionId=vp.core.getNumber(parseInt(sCookieSessionId),0);
if(iCookieSessionId>0)
{
oPostUrl.setItem("cdsession",iCookieSessionId);
}


try
{
me.transferring=true;
currentPostUrl=oPostUrl;
if(!oMovie.startUpload(iMovieUploadId,oPostUrl.toString()+sPostQueryString))
{
throw"Flash upload start failed";
}
}
catch(ex)
{

me.transferring=false;
vp.logger.logError(Math.random(),vp.upload.FlashVersion.string,"vp.upload.FlashUpload: movie.start failed",vp.logger.Severity.Error);


me.fireErrorEvent();
}

};




this.cancel=function pb_this_cancel()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

if(me.cancelled)
{
return;
}



me.cancelled=true;


if(!vp.upload.disableLogging&&(me.transferring||me.processing))
{
me.manager.logCancel(me);
}


if(me.transferring)
{

try
{
oMovie.cancelUpload(iMovieUploadId);
}
catch(ex)
{
vp.logger.logError(Math.random(),vp.upload.FlashVersion.string,"vp.upload.FlashUpload: movie.cancel failed",vp.logger.Severity.Information);
}
}

me.fireCancelEvent();
};




this.onTransferSuccess=function pb_this_onTransferSuccess()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
if(me.cancelled)
{
return;
}
me.transferring=false;
me.processing=true;


me.ontransferfinish.fire();



var oProcessUrl=new vp.web.URL("http://"+currentPostUrl.hostname+currentPostUrl.pathname);
oProcessUrl.setItem("api",true);
oProcessUrl.setItem("type","flash");
oProcessUrl.setItem("fv",vp.upload.FlashVersion.string);
oProcessUrl.setItem("fid",me.fid);
oProcessUrl.setItem("id",me.id);
oProcessUrl.setItem("onlyprocess",true);



vp.uploads.tracking.getAsync(oProcessUrl.toString()+sPostQueryString,onProcessSuccess,onProcessError);
};

var onProcessSuccess=function pv_onProcessSuccess(sResponse)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
if(me.cancelled)
{
return;
}
me.processing=false;


var oResponse;
try
{
if(typeof sResponse==="string")
{
oResponse=vp.http.parseJSON(sResponse);
}
else
{

oResponse=sResponse;
}
}catch(ex){}


if(oResponse)
{

var ee={};
ee.result=oResponse;
me.oncomplete.fire(ee);
}
else
{
if(vp.upload.showDebugInfo)
{
alert("no processing response: "+me.fid);
}

vp.logger.logError(Math.random(),me.fid,"vp.upload.FlashUpload: no processing response",vp.logger.Severity.Error);


me.fireErrorEvent();
}
};

var onProcessError=function pv_onProcessError(oError)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
if(me.cancelled)
{
return;
}
me.processing=false;

if(vp.upload.showDebugInfo)
{
alert("processing request error: "+oError.toString());
}

vp.logger.logError(Math.random(),oError.toString(),"vp.upload.FlashUpload: processing request error",vp.logger.Severity.Error);


me.fireErrorEvent();
};






this.onTransferError=function pb_this_onTransferError(sErrorDescription,bCanRetryHost)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
if(me.cancelled)
{
return;

}

if(vp.upload.showDebugInfo)
{
alert("transfer error: "+sErrorDescription);
}


vp.logger.logError(Math.random(),me.fid,"vp.upload.FlashUpload: file transfer error: "+sErrorDescription,vp.logger.Severity.Error);


if(vp.crossdomain.isImageServer(currentPostUrl.hostname))
{
if(bCanRetryHost)
{

vp.crossdomain.pingImageServer(currentPostUrl.hostname,

me.onFinalTransferError,

function(){me.tryNextServer(this.currentHostname);}.getClosure({currentHostname:currentPostUrl.hostname}));
}
else
{



vp.crossdomain.updateImageServerCache(currentPostUrl.hostname,false);
me.tryNextServer(currentPostUrl.hostname);
}
}
else
{

me.onFinalTransferError();
}

};




this.tryNextServer=function pb_this_tryNextServer(sCurrentHostname)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

var nextPostUrl=me.getNextPostUrl(sCurrentHostname);
if(nextPostUrl)
{

me.logFailoverEvent("vp.upload.FlashUpload");
me.startUploadToUrl(nextPostUrl);
}
else
{

me.onFinalTransferError();
}

};




this.onFinalTransferError=function pb_this_onFinalTransferError()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

me.transferring=false;


me.ontransferfinish.fire();


me.fireErrorEvent();

};

var transferStarted=false;







this.onTransferProgress=function pb_this_onTransferProgress(fReceivedFileSize,fTimeRemaining,fTransferRate)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

if(!transferStarted)
{
transferStarted=true;

var eTransferStart={};
eTransferStart.totalFileSize=iFileSize;
me.ontransferstart.fire(eTransferStart);
}

var e={};
e.receivedFileSize=fReceivedFileSize;
e.timeRemaining=fTimeRemaining;
e.transferRate=fTransferRate;
me.ontransferprogress.fire(e);
};
};









vp.upload.PartnerFileDownload=function upload_PartnerFileDownload(sPartnerFileId,bIsReseller)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var me=this;





this.inheritFrom=vp.upload.Upload;
this.inheritFrom(null,"");





this.cancelled=false;




this.cancel=function pb_this_cancel()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
me.cancelled=true;
me.fireCancelEvent();
};




this.start=function pb_this_start()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
me.oninit.fire();


var oUrl=new vp.web.URL(vp.upload.partnerFetchUrl);
oUrl.setItem("pid",sPartnerFileId);
oUrl.setItem("reseller",bIsReseller?"1":"0");


vp.http.getAsync(oUrl.toString(),onProcessSuccess,onProcessError);


me.ontransferfinish.fire();
};

var onProcessSuccess=function pv_onProcessSuccess(sResponse)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
if(me.cancelled)
{
return;
}


var oResponse;
try
{
oResponse=vp.http.parseJSON(sResponse);
}catch(ex){}


if(oResponse)
{

var ee={};
ee.result=oResponse;
me.oncomplete.fire(ee);
}
else
{
onProcessError();
}
};

var onProcessError=function pv_onProcessError(oError)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
if(me.cancelled)
{
return;
}


me.fireErrorEvent();
};

};





vp.upload.ExternalUrlSource=function upload_ExternalUrlSource()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}





this.fileName='';





this.url='';





this.hash='';

};








vp.upload.FromExternalUrlUpload=function upload_FromExternalUrlUpload(oManager,oSourceData,iUniqueID)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var me=this;





this.inheritFrom=vp.upload.Upload;
this.inheritFrom(oManager,oSourceData.fileName);

this.oSourceData=oSourceData;





var _oProgressTracker=null;

var oIFrameWrapper=null;

this.transferring=false;

var currentUrl=null;
var bAlreadyFiredTransferStart=false;




this.initialize=function pb_this_initialize()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
oIFrameWrapper=new vp.crossdomain.IFrameWrapper();


me.oninit.fire();
};




this.start=function pb_this_start()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}


me.manager.requestStart(me);
};




this.internalStart=function pb_this_internalStart()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
me.startToUrl(vp.upload.externalUrlServiceUrl);
};

this.startToUrl=function pb_this_startToUrl(sUrl)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}



var oPostUrl=me.determinePostUrlToUse(sUrl);
oPostUrl.setItem("api",true);
oPostUrl.setItem("fv",vp.upload.FlashVersion.string);
oPostUrl.setItem("fid",me.fid);
oPostUrl.setItem("id",me.id);
oPostUrl.setItem("source",2);

if(vp.upload.largeUpload)
{
oPostUrl.setItem("lu",1);
}

oPostUrl.setItem("url",oSourceData.url);
oPostUrl.setItem("url_hash",oSourceData.hash);
oPostUrl.setItem("external_image_source",oSourceData.source);
oPostUrl.setItem("external_image_identifier",oSourceData.identifier);

try
{
me.transferring=true;
currentUrl=oPostUrl;
oIFrameWrapper.getAsync(new vp.web.URL(oPostUrl.toString()+me.manager.configuration.postQS),me.completeUpload,me.onerror);
}
catch(ex)
{

oIFrameWrapper.cancel();

vp.logger.logError(Math.random(),me.filePath,"vp.upload.FromExternalUrlUpload: set URL failed",vp.logger.Severity.Information);

me.fireErrorEvent(vp.upload.resultErrorBadPath);
}


if(!bAlreadyFiredTransferStart)
{
bAlreadyFiredTransferStart=true;
me.ontransferstart.fire();
me.ontransferfinish.fire();
}
};





this.getNextPostUrl=function pb_this_getNextPostUrl(sHostname)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

if(vp.crossdomain.isImageServer(sHostname))
{
var nextImageServer=vp.crossdomain.getNextImageServer(sHostname);
if(nextImageServer)
{

var oUrl=new vp.web.URL(vp.upload.externalUrlServiceUrl);

oUrl.hostname=nextImageServer;
oUrl.host=nextImageServer;

return oUrl.toString();
}
}

return null;

};

this.onerror=function pb_this_onerror(oErr)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

vp.logger.logError(Math.random(),me.fid,"vp.upload.FromExternalUrlUpload: (request error) "+oErr.toString(),vp.logger.Severity.Information);



if(vp.crossdomain.isImageServer(currentUrl.hostname))
{

vp.crossdomain.pingImageServer(currentUrl.hostname,

me.fireErrorEvent,

function(){me.tryNextServer(this.currentHostname);}.getClosure({currentHostname:currentUrl.hostname}));

}
else
{

me.fireErrorEvent();
}

};




this.tryNextServer=function pb_this_tryNextServer(sCurrentHostname)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

var nextPostUrl=me.getNextPostUrl(sCurrentHostname);
if(nextPostUrl)
{

me.logFailoverEvent("vp.upload.FromExternalUrlUpload");
me.startToUrl(nextPostUrl);
}
else
{

me.fireErrorEvent();
}

};




this.cancel=function pb_this_cancel()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

if(!vp.upload.disableLogging&&me.transferring)
{
me.manager.logCancel(me);
}


oIFrameWrapper.cancel();

me.fireCancelEvent();
};




this.completeUpload=function pb_this_completeUpload(sResponse)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

var oResponse=vp.http.parseJSON(sResponse);


var ee={};
ee.result=oResponse;
me.oncomplete.fire(ee);

me.transferring=false;
};





var onProgressStart=function pv_onProgressStart(iTotalFileSize)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var e={};
e.totalFileSize=iTotalFileSize;
me.ontransferstart.fire(e);
};







var onProgress=function pv_onProgress(fReceivedFileSize,fTimeRemaining,fTransferRate)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var e={};
e.receivedFileSize=fReceivedFileSize;
e.timeRemaining=fTimeRemaining;
e.transferRate=fTransferRate;
me.ontransferprogress.fire(e);
};






var onProgressFinish=function pv_onProgressFinish(sFid,bError)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
me.ontransferfinish.fire();
};
};


if(!window.__td){window.__MT=100;window.__ti=0;window.__td=[];window.__td.length=__MT;window.__noTrace=false;



}











if(typeof vp=="undefined")
{
var vp={};
}





if(!vp.upload)
{
vp.upload=function upload(){if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}};
}






vp.upload.Progress=function upload_Progress(iMaxUploads)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var me=this;





var _aUploads=new Array();





var _iMaxUploads=iMaxUploads;





this.attachUpload=function pb_this_attachUpload(oUpload)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
if(_iMaxUploads>0&&_iMaxUploads<=_aUploads.length)
{

var oOldestUpload=_aUploads.shift();
oOldestUpload.oninit.removeHandler(me.onUploadInit);
oOldestUpload.ontransferstart.removeHandler(me.onUploadStart);
oOldestUpload.ontransferprogress.removeHandler(me.onUploadProgress);
oOldestUpload.ontransferfinish.removeHandler(me.onUploadFinish);
oOldestUpload.oncomplete.removeHandler(me.onUploadComplete);
}

_aUploads.push(oUpload);

oUpload.oninit.addHandler(me.onUploadInit);
oUpload.ontransferstart.addHandler(me.onUploadStart);
oUpload.ontransferprogress.addHandler(me.onUploadProgress);
oUpload.ontransferfinish.addHandler(me.onUploadFinish);
oUpload.oncomplete.addHandler(me.onUploadComplete);
};




this.reset=function pb_this_reset()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

};





this.onUploadInit=function pb_this_onUploadInit(e)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

};





this.onUploadStart=function pb_this_onUploadStart(e)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

};





this.onUploadProgress=function pb_this_onUploadProgress(e)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

};





this.onUploadFinish=function pb_this_onUploadFinish(e)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

};





this.onUploadComplete=function pb_this_onUploadComplete(e)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

};
};






vp.upload.ProgressDebugger=function upload_ProgressDebugger()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var me=this;





this.inheritFrom=vp.upload.Progress;
this.inheritFrom(0);





this.onUploadInit=function pb_this_onUploadInit(e)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
vp.debug.trace(e.target.id+", "+e.target.fid+": init");
};





this.onUploadStart=function pb_this_onUploadStart(e)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
vp.debug.trace(e.target.id+", "+e.target.fid+": start ... size: "+e.totalFileSize);
};





this.onUploadProgress=function pb_this_onUploadProgress(e)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
vp.debug.trace(e.target.id+", "+e.target.fid+": progress ... size: "+e.receivedFileSize+" timeleft: "+e.timeRemaining+" rate: "+e.transferRate);
};





this.onUploadFinish=function pb_this_onUploadFinish(e)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
vp.debug.trace(e.target.id+", "+e.target.fid+": finish");
};





this.onUploadComplete=function pb_this_onUploadComplete(e)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
if(e.result&&e.result.cancel)
{
vp.debug.trace(e.target.id+", "+e.target.fid+": cancel");
}
else if(e.result&&e.result.error)
{
vp.debug.trace(e.target.id+", "+e.target.fid+": error");
}
else if(e.result&&e.result.success)
{
vp.debug.trace(e.target.id+", "+e.target.fid+": complete");
}
};
};










vp.upload.ProgressFinalizer=function upload_ProgressFinalizer(fnSuccessCB,fnFailureCB,sSuccessUrl,sFailureUrl)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var me=this;





this.inheritFrom=vp.upload.Progress;
this.inheritFrom(0);





var _fnSuccessCB=fnSuccessCB;





var _fnFailureCB=typeof fnFailureCB!="undefined"?fnFailureCB:fnSuccessCB;





var _sSuccessUrl=sSuccessUrl;





var _sFailureUrl=typeof sFailureUrl!="undefined"?sFailureUrl:sSuccessUrl;;





this.onUploadComplete=function pb_this_onUploadComplete(e)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var uploadResult=e.result;
if(!uploadResult)
{

return;
}

if(uploadResult.cancel)
{


}
else if(uploadResult.error)
{
if(_fnFailureCB)
{
_fnFailureCB(uploadResult);
}
else if(_sFailureUrl&&_sFailureUrl.length>0)
{
if(vp.upload.useErrorDialog)
{

vp.upload.showErrorDialog(uploadResult);
}
else
{

if(_sFailureUrl.indexOf('?')<0)
{
_sFailureUrl+='?';
}

var oErrorData=vp.upload.getError(uploadResult);

document.location.assign(_sFailureUrl+oErrorData.queryString);
}
}
}
else if(uploadResult.success)
{
if(_fnSuccessCB)
{
_fnSuccessCB(uploadResult);
}
else if(_sSuccessUrl&&_sSuccessUrl.length>0)
{
if(_sSuccessUrl.indexOf('?')<0)
{
_sSuccessUrl+='?';
}
document.location.assign(_sSuccessUrl+uploadResult.success.queryString);
}
}
};
};







vp.upload.ProgressInitializer=function upload_ProgressInitializer(fnInitCB)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var me=this;





this.inheritFrom=vp.upload.Progress;
this.inheritFrom(0);





var _fnInitCB=fnInitCB;





this.onUploadInit=function pb_this_onUploadInit(e)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
_fnInitCB(e.target);
};
};








vp.upload.ProgressUI=function upload_ProgressUI(eType,vTargetContainer)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var me=this;





this.inheritFrom=vp.upload.Progress;
this.inheritFrom(1);




var oContainer;
var oProgressTop;
var oProgressUI;
var oWaitingArea;
var oTransferArea;
var oProcessingArea;




var aFileNames;
var aTimeRemainingMin;
var aTimeRemainingSec;
var aPercentDone;




var oWaitingBar;
var oTransferBar;
var oProcessingBar;




var iFileSize;




var oPageDialog;




var bInitialized=false;




var initialize=function pv_initialize()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

if(bInitialized)
{
return;
}
bInitialized=true;


oContainer=vp.core.getElement(vTargetContainer,"vp.upload.ProgressUI");


var sTemplateId=vp.upload.progressTemplateIds[eType];
var oTemplate=vp.ui.get(sTemplateId);
oProgressUI=oTemplate.cloneNode(true);
oProgressUI.id="";
vp.ui.expand(oProgressUI);



oProgressTop=document.createElement('div');
vp.ui.addClass(oProgressTop,'upload-progress-top');
oProgressTop.appendChild(oProgressUI);


vp.dialog.addOnResizeHandlerToCurrent(updateProgressSize);


oWaitingArea=vp.ui.getChildrenBySelector(oProgressUI,".waiting-area").shift();
oTransferArea=vp.ui.getChildrenBySelector(oProgressUI,".transfer-area").shift();
oProcessingArea=vp.ui.getChildrenBySelector(oProgressUI,".processing-area").shift();

aFileNames=vp.ui.getChildrenBySelector(oProgressUI,".upload-filename");
aTimeRemainingMin=vp.ui.getChildrenBySelector(oProgressUI,".transfer-timeremaining-min");
aTimeRemainingSec=vp.ui.getChildrenBySelector(oProgressUI,".transfer-timeremaining-sec");
aPercentDone=vp.ui.getChildrenBySelector(oProgressUI,".transfer-percent");

var aWaitingBarContainers=vp.ui.getChildrenBySelector(oProgressUI,".waiting-bar-container");
var aWaitingBarDots=vp.ui.getChildrenBySelector(oProgressUI,".waiting-bar-dot");
var aTransferBarContainers=vp.ui.getChildrenBySelector(oProgressUI,".transfer-bar-container");
var aTransferBarProgresses=vp.ui.getChildrenBySelector(oProgressUI,".transfer-bar-progress");
var aTransferBarFillers=vp.ui.getChildrenBySelector(oProgressUI,".transfer-bar-filler");
var aTransferBarPercents=vp.ui.getChildrenBySelector(oProgressUI,".transfer-bar-percent");
var aProcessingBarContainers=vp.ui.getChildrenBySelector(oProgressUI,".processing-bar-container");
var aProcessingBarDots=vp.ui.getChildrenBySelector(oProgressUI,".processing-bar-dot");


if(aWaitingBarContainers.length>0)
{
oWaitingBar=new vp.upload.widget.ProcessBar(
aWaitingBarContainers.shift(),aWaitingBarDots.shift(),false,3);
}
if(aTransferBarContainers.length>0)
{
oTransferBar=new vp.upload.widget.ProgressBar(
aTransferBarContainers.shift(),aTransferBarProgresses.shift(),
aTransferBarFillers.shift(),aTransferBarPercents.shift());
}
if(aProcessingBarContainers.length>0)
{
oProcessingBar=new vp.upload.widget.ProcessBar(
aProcessingBarContainers.shift(),aProcessingBarDots.shift(),true);
}
};

var showOrHideArea=function pv_showOrHideArea(oShowArea,oAreaElement,oProgressBar)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var bShow=(oAreaElement&&oAreaElement==oShowArea);
if(oAreaElement)
{
bShow?vp.ui.expand(oAreaElement):vp.ui.collapse(oAreaElement);
}
if(oProgressBar)
{
bShow?oProgressBar.start():oProgressBar.reset();
}
};
var showArea=function pv_showArea(oShowArea)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
showOrHideArea(oShowArea,oWaitingArea,oWaitingBar);
showOrHideArea(oShowArea,oTransferArea,oTransferBar);
showOrHideArea(oShowArea,oProcessingArea,oProcessingBar);
};




var updateProgressSize=function pv_updateProgressSize()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
if(!oContainer||!oProgressTop||
!vp.ui.isElementInDOM(oContainer)||!vp.ui.isElementInDOM(oProgressTop))
{
return;
}





var oContainerRect=vp.ui.getRect(oContainer);
var oProgressRect=vp.ui.getRect(oProgressTop);
vp.ui.setStyleValue(oProgressUI,"width",oContainerRect.width);
vp.ui.setStyleValue(oProgressUI,"height",oContainerRect.height);
vp.ui.setStyleValue(oProgressUI,"top",oContainerRect.top-oProgressRect.top);
vp.ui.setStyleValue(oProgressUI,"left",oContainerRect.left-oProgressRect.left);





oWaitingBar.updateWidth();
oProcessingBar.updateWidth();
};

this.reset=function pb_this_reset()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

if(!oProgressTop||!vp.ui.isElementInDOM(oProgressTop))
{
return;
}


if(oPageDialog)
{
oPageDialog.close();
}


showArea(null);


oContainer.removeChild(oProgressTop);
};





var preProgressState;
this.onUploadInit=function pb_this_onUploadInit(e)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

initialize();


var uploadFileName=e.target.getFileName();
for(var n=0;n<aFileNames.length;n++)
{
aFileNames[n].innerHTML=uploadFileName;
}


vp.ui.expand(oContainer);


var maxZIndex=0;
var children=oContainer.childNodes;
for(var i=0;i<children.length;i++)
{
if(children[i].nodeType==1)
{
var z=vp.core.getNumber(parseInt(vp.ui.getCurrentStyle(children[i],"zIndex")),0);
maxZIndex=Math.max(maxZIndex,z);
}
}

vp.ui.setStyleValue(oProgressTop,"zIndex",maxZIndex+1);


oContainer.appendChild(oProgressTop);


showArea(oWaitingArea);


if(eType==vp.upload.ProgressType.Page)
{

if(!oPageDialog)
{
oPageDialog=new vp.dialog.NodeDialog(
oContainer.id+"_dialog",
{width:100,height:100},
oContainer);

oPageDialog.chrome=vp.dialog.chrome.Primary;
oPageDialog.options.isDraggable=false;
oPageDialog.options.title=vp.upload.dialogTitleProgress;
}


var cancelHandler=function pv_cancelHandler(e)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
if(e.isCancelButton)
{
this.upl.cancel();
}
}
.getClosure({upl:e.target});
oPageDialog.onclose.removeAll();
oPageDialog.onclose.addHandler(cancelHandler);


oPageDialog.open();
oPageDialog.resizeToFitContent(true);
}



updateProgressSize();
};





this.onUploadStart=function pb_this_onUploadStart(e)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
iFileSize=Math.max(1,vp.core.getNumber(e.totalFileSize,1));
showArea(oTransferArea);
};





this.onUploadProgress=function pb_this_onUploadProgress(e)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var msRemaining=Math.max(0,vp.core.getNumber(e.timeRemaining,0));
var bytesSent=Math.max(0,vp.core.getNumber(e.receivedFileSize,0));
var ratioSent=bytesSent/iFileSize;

var secs=Math.round(msRemaining/1000);
var secsShow=secs%60;
var minsShow=(secs-secsShow)/60;
var percentSent=Math.round(ratioSent*100);


if(oTransferBar)
{
oTransferBar.setProgress(ratioSent);
}

for(var m=0;m<aTimeRemainingMin.length;m++)
{
aTimeRemainingMin[m].innerHTML=minsShow;
}
for(var s=0;s<aTimeRemainingSec.length;s++)
{
aTimeRemainingSec[s].innerHTML=secsShow;
}

for(var p=0;p<aPercentDone.length;p++)
{
aPercentDone[p].innerHTML=percentSent;
}
};





this.onUploadFinish=function pb_this_onUploadFinish(e)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
showArea(oProcessingArea);
};





this.onUploadComplete=function pb_this_onUploadComplete(e)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}



try
{
if(e.result&&e.result.success&&document.location.href.indexOf('/vp/ns/my_account/my_images.aspx')>=0)
{

return;
}
}
catch(ex){}

me.reset();
};
};







vp.upload.ProgressArea=function upload_ProgressArea(vTargetContainer)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
this.inheritFrom=vp.upload.ProgressUI;
this.inheritFrom(vp.upload.ProgressType.Area,vTargetContainer);
};






vp.upload.ProgressBar=function upload_ProgressBar(vTargetContainer)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
this.inheritFrom=vp.upload.ProgressUI;
this.inheritFrom(vp.upload.ProgressType.Bar,vTargetContainer);
};






vp.upload.ProgressBox=function upload_ProgressBox(vTargetContainer)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
this.inheritFrom=vp.upload.ProgressUI;
this.inheritFrom(vp.upload.ProgressType.Box,vTargetContainer);
};









vp.upload.ProgressRepository=function upload_ProgressRepository(oRepository)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var me=this;





this.inheritFrom=vp.upload.Progress;
this.inheritFrom(0);











this.onUploadInit=function pb_this_onUploadInit(e)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

var oUpload=e.target;



oUpload.ontransferstart.removeHandler(me.onUploadStart);
oUpload.ontransferprogress.removeHandler(me.onUploadProgress);
oUpload.ontransferfinish.removeHandler(me.onUploadFinish);
oUpload.oncomplete.removeHandler(me.onUploadComplete);



var oEntry=oRepository.addUpload(oUpload);


var oProgress=new vp.upload.ProgressUI(oEntry.uploadProgressType,oEntry.uploadProgressElement);
oProgress.attachUpload(oUpload);
oProgress.onUploadInit(e);
};





this.onUploadComplete=function pb_this_onUploadComplete(e)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

};
};






vp.upload.widget={};








vp.upload.widget.ProgressBar=function upload_widget_ProgressBar(oContainerDiv,oProgressDiv,oFillerDiv,oTextDiv)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var me=this;

var init=function pv_init()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
me.reset();
};

this.reset=function pb_this_reset()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
if(oProgressDiv)
{
oProgressDiv.style.width="0%";
}
if(oFillerDiv)
{
oFillerDiv.style.width="0%";
}
if(oTextDiv)
{
oTextDiv.innerHTML="0 %";
}
};
this.start=function pb_this_start()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

};

this.setProgress=function pb_this_setProgress(fProgressRatio)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var progressPct=Math.round(100*fProgressRatio);

if(oProgressDiv)
{
oProgressDiv.style.width=progressPct+"%";
}
if(oFillerDiv)
{
oFillerDiv.style.width="100%";
}
if(oTextDiv)
{
oTextDiv.innerHTML=progressPct+" %";
}
};

init();
};










vp.upload.widget.ProcessBar=function upload_widget_ProcessBar(oContainerDiv,oDotDiv,bMoveDots,iNumDots,iTimeCycle,iTimeRefresh)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var me=this;

var move_dots=bMoveDots;
var num_dots=(iNumDots)?iNumDots:5;
var time_cycle=(iTimeCycle)?iTimeCycle:(move_dots?2000:3000);
var time_refresh=(iTimeRefresh)?iTimeRefresh:(move_dots?100:1000);
var active_dot=0;
var dot_spacer=2;

var dots=new Array();
var timer=null;
var dotW=null;
var dotsW=null;
var contW=null;

var init=function pv_init()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

dots.push(oDotDiv);
for(var i=1;i<num_dots;i++)
{
var newDot=oDotDiv.cloneNode(false);
oContainerDiv.appendChild(newDot);
dots.push(newDot);
}

me.reset();
};

this.reset=function pb_this_reset()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
me.stop();

if(move_dots)
{

var offRight=contW+1;
for(var i=0;i<dots.length;i++)
{
dots[i].style.left=offRight+"px";

vp.ui.setOpacity(dots[i],1-i*(1/(dots.length)));
}
}
else
{
for(var j=0;j<dots.length;j++)
{
vp.ui.setOpacity(dots[j],0.33);
}
}
};
this.start=function pb_this_start()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
dotW=vp.ui.getWidth(oDotDiv);
dotsW=((dots.length+1)*dotW)+(dots.length*dot_spacer);

me.updateWidth();
me.reset();
timer=setInterval(moveDots,time_refresh);
};
this.stop=function pb_this_stop()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
if(timer)
{
clearInterval(timer);
}
};

this.updateWidth=function pb_this_updateWidth()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
contW=vp.ui.getWidth(oContainerDiv);

if(!move_dots)
{

var step=Math.round(contW/dots.length);
var dotX=Math.round(step/2)-(dotW/2.0);
for(var j=0;j<dots.length;j++)
{
dots[j].style.left=dotX+"px";
dotX+=step;
}
}
};

var moveDots=function pv_moveDots()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
if(move_dots)
{
var step=contW/(time_cycle/time_refresh);
var dotX=parseInt(oDotDiv.style.left)+dotW-dotsW;
dotX+=Math.round(step);
if(dotX>contW)
{
dotX=-dotsW;
}
for(var i=0;i<dots.length;i++)
{
var newX=dotX+dotsW-((i+1)*dotW)-(i*dot_spacer);
dots[i].style.left=newX+"px";
}
}
else
{
vp.ui.setOpacity(dots[active_dot],0.33);
active_dot=(active_dot+1)%dots.length;
vp.ui.setOpacity(dots[active_dot],1.0);
}
};

init();
};







vp.upload.ProgressMonitor=function upload_ProgressMonitor(){if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var me=this;





this.inheritFrom=vp.upload.Progress;
this.inheritFrom(0);

this.fnInitCallback;

this.fnStartCallback;

this.fnProgressCallback;

this.fnCancelCallback;

this.fnErrorCallback;

this.fnCompleteCallback;

this.fnUploadFinishCallback;





this.onUploadInit=function pb_this_onUploadInit(e){if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
if(me.fnInitCallback){
me.fnInitCallback(e.target);
}
};





this.onUploadStart=function pb_this_onUploadStart(e){if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
if(me.fnStartCallback){
me.fnStartCallback(e.target);
}
};





this.onUploadProgress=function pb_this_onUploadProgress(e){if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
if(me.fnProgressCallback){
me.fnProgressCallback(e.target);
}
};





this.onUploadFinish=function pb_this_onUploadFinish(e){if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
if(me.fnUploadFinishCallback){
me.fnUploadFinishCallback(e.target);
}
};





this.onUploadComplete=function pb_this_onUploadComplete(e){if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
if(e.result&&e.result.cancel){
if(me.fnCancelCallback){
me.fnCancelCallback(e.target);
}
}
else if(e.result&&e.result.error){
if(me.fnErrorCallback){
me.fnErrorCallback(e.target);
}
}
else if(e.result&&e.result.success){
if(me.fnCompleteCallback){
me.fnCompleteCallback(e.target);
}
}
};
};

if(!window.__td){window.__MT=100;window.__ti=0;window.__td=[];window.__td.length=__MT;window.__noTrace=false;



}








if(typeof vp=="undefined")
{
var vp={};
}





if(!vp.upload)
{
vp.upload=function upload(){if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}};
}







vp.upload.getError=function upload_getError(oUploadResult)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
if(!oUploadResult||!oUploadResult.error)
{
throw new Error("vp.upload.getError requires an upload result object");
}


var iErrorCode=oUploadResult.error.code;

var errorMessageId=vp.upload.errorCodes[iErrorCode.toString()];
if(errorMessageId)
{
return vp.upload.errorData[errorMessageId.toString()];
}
else
{
return vp.upload.errorData["1080967"];
}
};






vp.upload.getErrorShort=function upload_getErrorShort(oUploadResult)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var oErrorData=vp.upload.getError(oUploadResult);
var fnLearnMore=function pv_fnLearnMore()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
vp.upload.showErrorDialog(this.res);
}.getClosure({res:oUploadResult});


var oLearnMore=document.createElement('A');
oLearnMore.innerHTML=vp.upload.errorLearnMore;
oLearnMore.href='javascript://';
vp.events.add(oLearnMore,"click",fnLearnMore);


var oErrorMessage=document.createElement('SPAN');
oErrorMessage.innerHTML=oErrorData.headerText+' ';
oErrorMessage.appendChild(oLearnMore);

return oErrorMessage;
};





vp.upload.showErrorDialog=function upload_showErrorDialog(oUploadResult)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

if(!vp.upload.oPageError)
{

vp.upload.oPageError=new vp.upload.ErrorUI();


var oDialogContent=vp.ui.get('pageUploadErrorDialog');
oDialogContent.insertBefore(vp.upload.oPageError.element,oDialogContent.firstChild);
}


vp.upload.oPageError.setError(oUploadResult);


var oErrorDialog=vp.dialog.get('pageUploadErrorDialog');
oErrorDialog.options.isDraggable=false;
oErrorDialog.open();
oErrorDialog.resizeToFitContent(true);
};





vp.upload.ErrorUI=function upload_ErrorUI()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var me=this;




this.element;





this.hideSuggestions;




var oHeader;
var oSubheader;
var oSuggestions;
var oHeaderText;
var oSubheaderText;
var oSuggestionsText;




var bInitialized=false;




var initialize=function pv_initialize()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

if(bInitialized)
{
return;
}
bInitialized=true;


var sTemplateId=vp.upload.errorTemplateId;
var oTemplate=vp.ui.get(sTemplateId);
me.element=oTemplate.cloneNode(true);
me.element.id="";


oHeader=vp.ui.getChildrenBySelector(me.element,".header").shift();
oSubheader=vp.ui.getChildrenBySelector(me.element,".subheader").shift();
oSuggestions=vp.ui.getChildrenBySelector(me.element,".suggestions").shift();

oHeaderText=vp.ui.getChildrenBySelector(me.element,".header-text").shift();
oSubheaderText=vp.ui.getChildrenBySelector(me.element,".subheader-text").shift();
oSuggestionsText=vp.ui.getChildrenBySelector(me.element,".suggestions-text").shift();

vp.ui.expand(me.element);
};





this.setError=function pb_this_setError(oUploadResult)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

var oErrorData=vp.upload.getError(oUploadResult);


oHeaderText.innerHTML=oErrorData.headerText;


if(oErrorData.subheaderText)
{
oSubheaderText.innerHTML=oErrorData.subheaderText;
vp.ui.expand(oSubheader);
}
else
{
vp.ui.collapse(oSubheader);
}


if(oErrorData.resolutionTexts&&oErrorData.resolutionTexts.length>0&&!me.hideSuggestions)
{
var suggestionsHtml='<ul>';
for(var i=0;i<oErrorData.resolutionTexts.length;i++)
{
suggestionsHtml+='<li>'+oErrorData.resolutionTexts[i]+'</li>';
}
suggestionsHtml+='</ul>';


if(window.location.pathname==="/video-contest.aspx")
{
suggestionsHtml=vp.text.replace(suggestionsHtml,'12','30',false);
}

oSuggestionsText.innerHTML=suggestionsHtml;
vp.ui.expand(oSuggestions);
}
else
{
vp.ui.collapse(oSuggestions);
}


vp.ui.expand(me.element);
};


initialize();
};

if(!window.__td){window.__MT=100;window.__ti=0;window.__td=[];window.__td.length=__MT;window.__noTrace=false;



}










if(typeof vp=="undefined")
{
var vp={};
}





if(!vp.upload)
{
vp.upload=function upload(){if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}};
}







vp.upload.Manager=function upload_Manager(sConfigurationKey,eRepetitionType)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var me=this;






this.configurationKey=sConfigurationKey;






this.repetitionType=(eRepetitionType)?eRepetitionType:vp.upload.RepetitionType.MultipleCancel;






this.uploads=new Array();






this.progressList=new Array();





var numClicks=0;




this.configuration=vp.upload.configurationMap[me.configurationKey];




this.cancelLastUpload=function pb_this_cancelLastUpload()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
if(me.uploads.length>0)
{
var oLastUpload=me.uploads[me.uploads.length-1];
oLastUpload.cancel();
}






};





this.registerProgress=function pb_this_registerProgress(oProgress)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

me.progressList.push(oProgress);
};




this.pushUpload=function pb_this_pushUpload(oUpload)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

me.uploads.push(oUpload);


for(var i=0;i<me.progressList.length;i++)
{
me.progressList[i].attachUpload(oUpload);
}


vp.upload.pageQueue.pushUpload(oUpload);
};





var log=function pv_log(oUrl)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
if(vp.upload.showDebugInfo)
{
vp.debug.trace('log: '+oUrl.toString());
}


oUrl.setItem("ts",new Date().valueOf());

var fnLog=function pv_fnLog()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

vp.http.ping(this.url);

}.getClosure({url:oUrl.toString()});


setTimeout(fnLog,0);
};





this.logClick=function pb_this_logClick(sClickType)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
numClicks++;


if(numClicks===1)
{
var oLogUrl=new vp.web.URL(vp.upload.normalLogUrl);
oLogUrl.setItem("logtype","click");
oLogUrl.setItem("vsup_multi",me.repetitionType==vp.upload.RepetitionType.Multiple);
oLogUrl.setItem("vsup_fv",vp.upload.FlashVersion.string);
oLogUrl.setItem("vsup_guid",vp.upload.serverGuid);
oLogUrl.setItem("vsup_ctype",sClickType);
oLogUrl.setItem("vsup_path",vp.upload.configurationMap[me.configurationKey].pathId);


try
{
var oCurrentUrl=new vp.web.URL(document.location.href);
var sPfid=oCurrentUrl.getItem("pfid");
if(!sPfid)
{
sPfid=oCurrentUrl.getItem("pf_id");
}
if(sPfid)
{
oLogUrl.setItem("vsup_pfid",sPfid);
}
}
catch(ex){}


log(oLogUrl);
}



if(vp.upload.multiUploadTooltip)
{
vp.upload.multiUploadTooltip.hide();
}
if(vp.upload.multiSelectTooltip)
{
vp.upload.multiSelectTooltip.hide();
}
};







this.logStart=function pb_this_logStart(sType,iCount)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var oLogUrl=new vp.web.URL(vp.upload.normalLogUrl);
oLogUrl.setItem("logtype","start");
oLogUrl.setItem("vsup_multi",me.repetitionType==vp.upload.RepetitionType.Multiple);
oLogUrl.setItem("vsup_fv",vp.upload.FlashVersion.string);
oLogUrl.setItem("vsup_guid",vp.upload.serverGuid);
oLogUrl.setItem("vsup_type",sType);
oLogUrl.setItem("vsup_count",iCount);
oLogUrl.setItem("vsup_clicks",numClicks);


log(oLogUrl);
};





this.logCancel=function pb_this_logCancel(oUpload)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var oLogUrl=new vp.web.URL(vp.upload.normalLogUrl);
oLogUrl.setItem("logtype","cancel");
oLogUrl.setItem("fid",oUpload.fid);
oLogUrl.setItem("id",oUpload.id);


log(oLogUrl);
};




this.logRenderMulti=function pb_this_logRenderMulti()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var oLogUrl=new vp.web.URL(vp.upload.normalLogUrl);
oLogUrl.setItem("logtype","render-multi");


log(oLogUrl);
};


if(vp.upload.showDebugInfo)
{
me.progressList.push(new vp.upload.ProgressDebugger());
}

if(!this.configuration)
{
throw"Could not find upload configuration: "+me.configurationKey;
}



if(me.repetitionType==vp.upload.RepetitionType.Multiple)
{
if(!vp.upload.loggedMultiRenderEventn&&!vp.upload.disableLogging)
{
vp.upload.loggedMultiRenderEvent=true;
me.logRenderMulti();
}
}
};









vp.upload.FormManager=function upload_FormManager(sConfigurationKey,eRepetitionType,eEmptyInputAction)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var me=this;





this.inheritFrom=vp.upload.Manager;
this.inheritFrom(sConfigurationKey,eRepetitionType);





var _eEmptyInputAction=(eEmptyInputAction)?eEmptyInputAction:vp.upload.EmptyInputAction.DisableUploadButton;





var _oFileInput=null;
this.oFileInputContainer=null;





var _oFileInputFoil=null;
this.oFileInputFoilContainer=null;





var _oEnabledButton=null;





var _oDisabledButton=null;







this.registerFileInput=function pb_this_registerFileInput(vFileInputContainer,bFoil)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

var oFileInputElementContainer=vp.core.getElement(vFileInputContainer,"vp.upload.FormManager.registerFileInput");
var oFileInputElement=oFileInputElementContainer.firstChild;


if(bFoil)
{
if(_oFileInputFoil)
{
vp.events.remove(_oFileInputFoil,"change",onInputChange);
vp.events.remove(_oFileInputFoil,"keyup",onInputKeyUp);
vp.events.remove(_oFileInputFoil,"keydown",onInputKeyUp);
vp.events.remove(_oFileInputFoil,"click",onInputClick);
}
}
else
{
if(_oFileInput)
{
vp.events.remove(_oFileInput,"change",onInputChange);
vp.events.remove(_oFileInput,"keyup",onInputKeyUp);
vp.events.remove(_oFileInput,"keydown",onInputKeyUp);
vp.events.remove(_oFileInput,"click",onInputClick);
}
}


vp.events.add(oFileInputElement,"change",onInputChange);
vp.events.add(oFileInputElement,"keyup",onInputKeyUp);
vp.events.add(oFileInputElement,"keydown",onInputKeyUp);
vp.events.add(oFileInputElement,"click",onInputClick);

if(bFoil)
{
_oFileInputFoil=oFileInputElement;
me.oFileInputFoilContainer=oFileInputElementContainer;
}
else
{
_oFileInput=oFileInputElement;
me.oFileInputContainer=oFileInputElementContainer;
}

updateButtonState(false);
};






this.registerButton=function pb_this_registerButton(vEnabledButton,vDisabledButton)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

var oButtonEnabledElement=vp.core.getElement(vEnabledButton,"vp.upload.FormManager.registerButton");
var oButtonDisabledElement;
if(vDisabledButton)
{
oButtonDisabledElement=vp.core.getElement(vDisabledButton,"vp.upload.FormManager.registerButton");
}

if(_oEnabledButton||_oDisabledButton)
{
throw"vp.upload.FormManager.registerButton: cannot register multiple buttons";
}


oButtonEnabledElement.onclick=null;
if(oButtonDisabledElement)
{
oButtonDisabledElement.onclick=null;
}


vp.events.add(oButtonEnabledElement,"click",onButtonClick);

_oEnabledButton=oButtonEnabledElement;
_oDisabledButton=oButtonDisabledElement;

updateButtonState(false);
};





var onInputClick=function pv_onInputClick(e)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
if(!vp.upload.disableLogging)
{
me.logClick("html");
}
};





var onInputChange=function pv_onInputChange(e)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var canStart=canQueueUpload();

if(_oEnabledButton)
{

updateButtonState(canStart);
}
else
{

tryQueueUpload(canStart);
}

return false;
};





var onInputKeyUp=function pv_onInputKeyUp(e)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
e=vp.events.getEvent(e);

var canStart=canQueueUpload();

if(_oEnabledButton)
{

updateButtonState(canStart);
}
else
{

if(e.keyCode==13)
{
tryQueueUpload(canStart);
}
}


if(e.keyCode==13)
{

vp.events.cancelEvent(e);
}

return true;
};





var onButtonClick=function pv_onButtonClick(e)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

var canStart=canQueueUpload();
tryQueueUpload(canStart);


vp.events.cancelEvent(e);
};





var updateButtonState=function pv_updateButtonState(bCanStart)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
if(!_oEnabledButton||!_oDisabledButton)
{

return;
}

if(bCanStart||_eEmptyInputAction!=vp.upload.EmptyInputAction.DisableUploadButton)
{
vp.ui.expandAndCollapse(_oEnabledButton,_oDisabledButton);
}
else
{
vp.ui.expandAndCollapse(_oDisabledButton,_oEnabledButton);
}
};





var canQueueUpload=function pv_canQueueUpload()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var inputDataExists=true;


if(_oFileInput&&(!_oFileInput.value||_oFileInput.value.trim()===''))
{
inputDataExists=false;
}


if(_oFileInputFoil&&(!_oFileInputFoil.value||_oFileInputFoil.value.trim()===''))
{
inputDataExists=false;
}

return inputDataExists;
};





var tryQueueUpload=function pv_tryQueueUpload(bCanStart)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
if(bCanStart)
{
queueUpload();
}
else if(_eEmptyInputAction==vp.upload.EmptyInputAction.DisplayWarningMessage)
{
alert(vp.upload.fieldBlankWarning);
}
};




var queueUpload=function pv_queueUpload()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}



if(me.repetitionType==vp.upload.RepetitionType.MultipleCancel)
{
me.cancelLastUpload();
}


var fileName=_oFileInput.value;


var oUploadContainer=vp.ui.get("divPageUploadContainer");
if(!oUploadContainer)
{
oUploadContainer=document.createElement("div");
oUploadContainer.id="divPageUploadContainer";
vp.ui.collapse(oUploadContainer);
document.body.appendChild(oUploadContainer);
}



var oUploadFormContainer=document.createElement("div");
oUploadFormContainer.id=_oFileInput.id+"_div"+(me.uploads.length+1);
oUploadContainer.appendChild(oUploadFormContainer);

var oUploadForm=document.createElement("form");
oUploadForm.id=_oFileInput.id+"_form"+(me.uploads.length+1);
oUploadFormContainer.appendChild(oUploadForm);


var oFileInputOld,oFileInputNew;
oFileInputOld=_oFileInput;
oFileInputNew=copyFileInput(oFileInputOld,"_post"+(me.uploads.length+1));
oFileInputOld.parentNode.insertBefore(oFileInputNew,oFileInputOld);
oUploadForm.appendChild(oFileInputOld);
me.registerFileInput(oFileInputNew.parentNode);

if(_oFileInputFoil)
{
oFileInputOld=_oFileInputFoil;
oFileInputNew=copyFileInput(oFileInputOld,"_post"+(me.uploads.length+1));
oFileInputOld.parentNode.insertBefore(oFileInputNew,oFileInputOld);
oUploadForm.appendChild(oFileInputOld);
me.registerFileInput(oFileInputNew.parentNode,true);
}














if(!vp.upload.disableLogging)
{
me.logStart("iframe",1);
}


var postQueryString=me.configuration.postQS;


var oNewUpload=new vp.upload.IFrameUpload(me,fileName,oUploadForm,postQueryString);





me.pushUpload(oNewUpload);
};








var copyFileInput=function pv_copyFileInput(oFileInputOld,sIdSuffix)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

var tempId=oFileInputOld.id;
oFileInputOld.id=tempId+sIdSuffix;


var oFileInputNew=vp.ui.createNamedElement("input",oFileInputOld.name);
oFileInputNew.id=tempId;
oFileInputNew.alt=oFileInputOld.alt;
oFileInputNew.size=oFileInputOld.size;
oFileInputNew.type=oFileInputOld.type;
oFileInputNew.className=oFileInputOld.className;

return oFileInputNew;
};
};







vp.upload.FlashVersion=
{
major:0,
minor:0,
release:0,
string:"0.0.0",
detected:false,
enabled:false
};







vp.upload.FlashManagers=new Array();





vp.upload.detectFlash=function upload_detectFlash()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

if(vp.upload.FlashVersion.detected)
{
return;
}


vp.upload.FlashVersion=window.swfobject.getFlashPlayerVersion();
vp.upload.FlashVersion.string=vp.upload.FlashVersion.major+'.'+
vp.upload.FlashVersion.minor+'.'+vp.upload.FlashVersion.release;

if(vp.upload.showDebugInfo)
{
vp.debug.trace('flash version detected: '+vp.upload.FlashVersion.string);
}


if(vp.upload.disableFlash)
{
vp.upload.FlashVersion.enabled=false;
if(vp.upload.showDebugInfo)
{
vp.debug.trace('disabling flash, requested by query string');
}
}
else if(vp.upload.FlashVersion.major<=8)
{
vp.upload.FlashVersion.enabled=false;
if(vp.upload.showDebugInfo)
{
vp.debug.trace('disabling flash, player version < 9: '+vp.upload.FlashVersion.string);
}
}
else if(vp.upload.FlashVersion.major===9&&vp.upload.FlashVersion.release<115&&vp.browser.isIE)
{
vp.upload.FlashVersion.enabled=false;
if(vp.upload.showDebugInfo)
{
vp.debug.trace('disabling flash, IE + player version < 9.0.115: '+vp.upload.FlashVersion.string);
}
}
else
{
vp.upload.FlashVersion.enabled=true;
}


vp.upload.FlashVersion.detected=true;
};





vp.upload.loadFlash=function upload_loadFlash()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

vp.upload.detectFlash();

if(vp.upload.FlashVersion.enabled)
{






var divVeil=vp.ui.get('divUploadPageVeil');
if(divVeil)
{
document.body.appendChild(divVeil);
}


for(var i=0;i<vp.upload.FlashManagers.length;i++)
{
vp.upload.FlashManagers[i].hookupFlash();
}
}
};









vp.upload.MovieManager=function upload_MovieManager(sConfigurationKey,eRepetitionType,eEmptyInputAction)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var me=this;





this.inheritFrom=vp.upload.FormManager;
this.inheritFrom(sConfigurationKey,eRepetitionType,eEmptyInputAction);





var _iId=-1;





var _bHookedUp=false;





var _bRegistered=false;





var _oMovie=false;





var _oMovieContainer=false;




var init=function pv_init()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

_iId=vp.upload.FlashManagers.length;


vp.upload.FlashManagers.push(me);


if(vp.upload.FlashVersion.enabled)
{
me.hookupFlash();
}
};





this.hookupFlash=function pb_this_hookupFlash()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}




if(_bHookedUp)
{



return;
}
_bHookedUp=true;



me.registerFileInput=registerFileInputBoth;


registerFileInputMovie();
};

var registerFileInputForm=me.registerFileInput;
var registerFileInputMovie=function pv_registerFileInputMovie(bCallback)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}




if(_bRegistered)
{
vp.logger.logError(Math.random(),vp.upload.FlashVersion.string,"vp.upload.MovieManager: input already registered",vp.logger.Severity.Warning);
return;
}


if(me.oFileInputContainer)
{

var oInputRect=vp.ui.getRect(me.oFileInputContainer);
var iMovieWidth=(oInputRect.width+10);
var iMovieHeight=(oInputRect.height+10);




if((oInputRect.width===0||oInputRect.height===0)&&!bCallback)
{
var fnLater=function pv_fnLater(){if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}this.cb(true);}.getClosure({cb:registerFileInputMovie});
setTimeout(fnLater,0);
return;
}


_bRegistered=true;







var oFlashUploadMovie=document.createElement('div');
oFlashUploadMovie.id=me.oFileInputContainer.firstChild.id+'Movie';
_oMovieContainer=document.createElement('div');
_oMovieContainer.id=me.oFileInputContainer.firstChild.id+'MovieContainer';
_oMovieContainer.appendChild(oFlashUploadMovie);



vp.ui.addClass(_oMovieContainer,"upload-movie");






vp.ui.setStyleValue(_oMovieContainer,"width",iMovieWidth);
vp.ui.setStyleValue(_oMovieContainer,"height",iMovieHeight);

vp.ui.setStyleValue(_oMovieContainer,"top",oInputRect.height-1);
vp.ui.setStyleValue(_oMovieContainer,"left",oInputRect.width-1);
me.oFileInputContainer.appendChild(_oMovieContainer);


var flashvars={
managerid:_iId,
multiple:me.repetitionType==vp.upload.RepetitionType.Multiple,
debug:vp.upload.showDebugInfo
};
var params={
allowscriptaccess:"sameDomain",
swliveconnect:"true",
wmode:"transparent"
};
var attributes={};
window.swfobject.embedSWF(vp.upload.flashMovieUrl,oFlashUploadMovie.id,iMovieWidth.toString(),iMovieHeight.toString(),'9.0',false,flashvars,params,attributes,registerFileInputMovieCB);
}
};
var registerFileInputBoth=function pv_registerFileInputBoth(vFileInputContainer,bFoil)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
registerFileInputForm(vFileInputContainer,bFoil);
registerFileInputMovie();
};




var registerFileInputMovieCB=function pv_registerFileInputMovieCB(e)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
_oMovie=e.ref;

if(vp.upload.showDebugInfo)
{
vp.debug.trace('flash overlay added! success:'+e.success+' id:'+e.id+' ref:'+e.ref);
}
};





this.onMovieLoad=function pb_this_onMovieLoad(bCallback)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}


if(!_oMovie&&!bCallback)
{
var fnLater=function pv_fnLater(){if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}this.cb(true);}.getClosure({cb:me.onMovieLoad});
setTimeout(fnLater,0);
return;
}

if(_oMovie&&_oMovie.registerUpload)
{

vp.ui.setStyleValue(_oMovieContainer,"top",-5);
vp.ui.setStyleValue(_oMovieContainer,"left",-5);

if(vp.upload.showDebugInfo)
{
vp.debug.trace('flash overlay loaded!');
}


onMovieReady();
}
else
{

vp.logger.logError(Math.random(),vp.upload.FlashVersion.string,"vp.upload.MovieManager: externalinterface not ready",vp.logger.Severity.Warning);

if(vp.upload.showDebugInfo)
{
vp.debug.trace('flash overlay not loaded! externalinterface not ready');
}
}
};





var onMovieReady=function pv_onMovieReady()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
if(me.repetitionType==vp.upload.RepetitionType.Multiple)
{
if(!vp.upload.multiSelectTooltip)
{

var oTipContentElement=vp.ui.get('divMultiSelectTip');
var oTipTargetElement=me.oFileInputContainer;

var oTooltip=new vp.widget.RichTooltip(oTipTargetElement,oTipContentElement);
oTooltip.skin=vp.widget.RichTooltip.skins.Message;
oTooltip.setBehavior(window.TOOLTIP_BEHAVIOR_HIDE_ON_CLICK);


vp.upload.multiSelectTooltip=oTooltip;


var fnShow=function pv_fnShow()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
vp.upload.multiSelectTooltip.show({});
};
setTimeout(fnShow,0);


}
}
};







this.addUpload=function pb_this_addUpload(iMovieUploadId,sFileName,iFileSize)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

if(me.repetitionType==vp.upload.RepetitionType.MultipleCancel)
{
me.cancelLastUpload();
}


var postQueryString=vp.upload.configurationMap[me.configurationKey].postQS;


var oNewUpload=new vp.upload.FlashUpload(me,sFileName,iFileSize,
_oMovie,iMovieUploadId,postQueryString);


me.pushUpload(oNewUpload);
};


if(!vp.upload.disableFlash&&
(vp.upload.useFlash===1||
(vp.upload.useFlash===2&&me.repetitionType==vp.upload.RepetitionType.Multiple)))
{
init();
}
};








vp.upload.FromExternalUrlManager=function upload_FromExternalUrlManager(sConfigurationKey)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var me=this;





this.inheritFrom=vp.upload.Manager;
this.inheritFrom(sConfigurationKey,vp.upload.RepetitionType.Multiple);






var _aUrlQueue=new Array();
var _aUrlInProgress=new Array();




var MAX_CONCURRENT_DOWNLOADS=3;





this.addUrlToQueue=function pb_this_addUrlToQueue(sourceData)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

me.logStart("thirdparty",1);


var oNewUpload=new vp.upload.FromExternalUrlUpload(me,sourceData,(me.uploads.length+1));

me.pushUpload(oNewUpload);

};

this.requestStart=function pb_this_requestStart(oNewUpload)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}


oNewUpload.oncomplete.addHandler(
function(e)
{
if(_aUrlInProgress.contains(this))
{
_aUrlInProgress.removeValue(this);
}
checkQueue();
}.getClosure(oNewUpload));


_aUrlQueue.push(oNewUpload);
checkQueue();

};




var checkQueue=function pv_checkQueue()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
while(_aUrlQueue.length>0&&_aUrlInProgress.length<MAX_CONCURRENT_DOWNLOADS)
{

var oNextUpload=_aUrlQueue.shift();
_aUrlInProgress.push(oNextUpload);
oNextUpload.internalStart();
}
};

};


if(!window.__td){window.__MT=100;window.__ti=0;window.__td=[];window.__td.length=__MT;window.__noTrace=false;}







if(typeof vp=="undefined")
{
var vp={};
}

if(typeof vp.uploads=="undefined")
{
vp.uploads={};
}

if(typeof vp.uploads.ajax=="undefined")
{
vp.uploads.ajax={};
}




vp.uploads.ajax.CrossDomainAjaxFactory=function uploads_ajax_CrossDomainAjaxFactory(sContainerId)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}




var me=this;




this.canBeUsed=true;




this.container=null;




this.containerId=sContainerId;




this.availableIFrames=new Array();




this.iframes=new Array();




this.getAsync=function pb_this_getAsync(sUrl,fnCallback)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}


var iframe=me.getNextIFrame();



var oURL=new vp.web.URL(sUrl);
oURL.setItem("cd","true");


iframe.getAsync(oURL.toString(),fnCallback);

};




this.getNextIFrame=function pb_this_getNextIFrame()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}


var iframe=null;


if(me.availableIFrames.length>0)
{

iframe=me.availableIFrames.pop();
}
else
{
try
{


me.initializeContainer();
iframe=new vp.uploads.ajax.OnDemandJavaScriptLoader(me.container);
iframe.onload.addHandler(me.iframe_onload);

me.iframes.add(iframe);

}
catch(ex)
{
me.canBeUsed=false;
throw ex;
}
}

return iframe;

};




this.iframe_onload=function pb_this_iframe_onload(e)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

me.availableIFrames.add(e.sender);
};




this.initializeContainer=function pb_this_initializeContainer()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
if(!me.container)
{

me.container=document.createElement('div');
me.container.id=me.containerId;
vp.ui.collapse(me.container);
document.body.appendChild(me.container);
}
};

};





vp.uploads.ajax.OnDemandJavaScriptLoader=function uploads_ajax_OnDemandJavaScriptLoader(oContainer)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}




var me=this;






this.onload=new vp.events.CustomEvent(this,"onload");




this.iframe=null;




this.fnCallback=null;




this.getAsync=function pb_this_getAsync(sUrl,fnCallback)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
me.fnCallback=fnCallback;
me.getJavaScript(sUrl);
};




this.getResponseFromIFrame=function pb_this_getResponseFromIFrame()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}


var response=null;
try
{

response=me.iframe.contentWindow.response;
}
catch(ex){}


var e={};
e.response=response;
e.sender=me;
me.onload.fire(e);


me.fnCallback(response);

};




this.initialize=function pb_this_initialize(oContainer)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}



me.iframe=document.createElement('iframe');


vp.ui.collapse(me.iframe);


var container=(oContainer?oContainer:document.body);
container.appendChild(me.iframe);



var doc=me.iframe.contentWindow.document.open("text/html","replace");


if(!doc)
{
doc=me.iframe.contentWindow.document;
}


doc.write('<html><head><title>iframe<\/title><script>var response = null;<\/script><\/head><body><\/body><\/html>');
doc.close();

};

this.initialize(oContainer);











this.isIE=false;




this.scriptTag=null;




this.count=0;

this.url="";




this.getJavaScript=function pb_this_getJavaScript(sUrl)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

me.iframe.contentWindow.response=null;


me.iframe.contentWindow.setTimeout(
function(){
me.getJavaScriptInternal(sUrl);
},0);
};




this.getJavaScriptInternal=function pb_this_getJavaScriptInternal(sUrl)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

var scriptTag=me.loadScript(sUrl);



if(me.isIE&&scriptTag.readyState!="loaded")
{

scriptTag.onreadystatechange=me.waitForReady;
}
else
{

me.waitForResponse();
}

};




this.loadScript=function pb_this_loadScript(sUrl)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}


var head=me.iframe.contentWindow.document.getElementsByTagName('head').item(0);


if(me.scriptTag)
{
head.removeChild(me.scriptTag);
}


me.scriptTag=me.iframe.contentWindow.document.createElement('script');
me.scriptTag.id='tagTemp'+me.count;
me.scriptTag.src=sUrl;
head.appendChild(me.scriptTag);

me.count++;

return me.scriptTag;

};

this.waitForReady=function pb_this_waitForReady()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

if(me.scriptTag&&me.scriptTag.readyState=="loaded")
{
me.scriptTag.onreadystatechange=null;
me.waitForResponse();
}
};




this.waitForResponse=function pb_this_waitForResponse()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

var responseReady=false;



try
{
if((me.iframe.contentWindow.response!==null)&&
(typeof(me.iframe.contentWindow.response)!=="undefined"))
{
responseReady=true;
}
}catch(ex){}


if(responseReady)
{
me.getResponse();
}
else
{
window.setTimeout(me.waitForResponse,250);
}

};

this.getResponse=function pb_this_getResponse()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}


window.setTimeout(me.getResponseFromIFrame,0);
};





};


vp.uploads.ajax.crossDomainAjaxFactory=new vp.uploads.ajax.CrossDomainAjaxFactory('divUploadAjax');
if(!window.__td){window.__MT=100;window.__ti=0;window.__td=[];window.__td.length=__MT;window.__noTrace=false;




}








if(typeof vp=="undefined")
{
var vp={};
}

if(typeof vp.uploads=="undefined")
{
vp.uploads={};
}

if(typeof vp.uploads.tracking=="undefined")
{
vp.uploads.tracking={};
}






















vp.uploads.tracking.UploadTracker=function uploads_tracking_UploadTracker(
trackUrl,
fid,
waitingToStartCallBack,
uploadStartedCallBack,
progressUpdateCallBack,
uploadCompleteCallBack,
cancelledCallBack)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}





var me=this;




this.trackUrl=trackUrl;





this.trackProxyUrl="/vp/ns/upload/UploadProgressTrackerProxy.aspx";




this.fid=fid;








this.waitingToStartCallBack=(waitingToStartCallBack)?
waitingToStartCallBack:function(howLongWeHaveAlreadyWaited,totalTimeWeWillWait){};





this.uploadStartedCallBack=(uploadStartedCallBack)?
uploadStartedCallBack:function(totalFileSize,fileName){};





this.progressUpdateCallBack=(progressUpdateCallBack)?
progressUpdateCallBack:function(recievedFileSize,timeElapsed,transferRate){};





this.uploadCompleteCallBack=(uploadCompleteCallBack)?
uploadCompleteCallBack:function(fid,bError){};





this.cancelledCallBack=(cancelledCallBack)?
cancelledCallBack:function(){};







this.fileSizeTolerance=500;





this.uploadStarted=false;





this.uploadServer;





this.startTime;






this.uploadStartedTriesRemaining=4;





this.defaultUploadStartTimeout=3000;
this.uploadStartTimeout=this.defaultUploadStartTimeout;




this.uploadFileName="";




this.totalFileSize=0;






this.lastFileSizeOnServer=-1;




this.numberOfInvalidServerResponses=0;







this.refreshUploadInformation=false;





this.refreshRateScale=0.01;




this.refreshRateMax=10;




this.refreshRateMin=3;




this.transferComplete=false;




this.cancelTracking=false;




this.cancel=function pb_this_cancel()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

me.cancelTracking=true;

me.cancelledCallBack();
};





this.notifyOfTransferComplete=function pb_this_notifyOfTransferComplete()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

if(!me.transferComplete)
{


me.cancelTracking=true;

me.onUploadCompleteCallBack(false);
}
};





this.startTrackUpload=function pb_this_startTrackUpload()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}


me.startTime=(new Date()).getTime();


me.waitingToStartCallBack(me.getElapsedTime(),me.uploadStartTimeout);



setTimeout(me.updateProgressFromServer,me.uploadStartTimeout);

};




this.updateProgressFromServer=function pb_this_updateProgressFromServer()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}


if(me.cancelTracking)
{
return;
}



var rnd=Math.round(Math.random()*10000);
var queryString='?random='+rnd+'&fid='+me.fid;


if(!me.uploadStarted){
queryString+='&getdata_triesleft='+me.uploadStartedTriesRemaining;
}else{
queryString+='&refreshstatus='+me.refreshUploadInformation+'&server='+me.uploadServer;
}




vp.uploads.tracking.getAsync(me.trackUrl+queryString,me.processServerResponse);

};




this.processServerResponse=function pb_this_processServerResponse(sResponse)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}


if(me.cancelTracking)
{
return;
}



var fileSizeOnServer=-1;
try{


var response=vp.http.parseJSON(sResponse);




if(false)
{

me.onUploadCompleteCallBack(true);
return;
}


fileSizeOnServer=parseInt(response.bytesReceived);

if(isNaN(fileSizeOnServer))
{
throw"Error Parsing File Size On Server";
}





if(!me.uploadStarted&&fileSizeOnServer!=-1){

if(!response.hasFileInfo)
{
throw"File Transfer Response is not fully qualified as expected";
}


if(!response.server)
{
throw"Error Parsing Upload Server";
}
me.uploadServer=response.server;


me.totalFileSize=parseInt(response.totalExpectedBytes);

if(isNaN(me.totalFileSize))
{
throw"Error Parsing Total File Size";
}

me.totalFileSize=me.totalFileSize-me.fileSizeTolerance;


if(!response.clientFileName)
{
throw"Error Parsing Upload File Name";
}
me.uploadFileName=response.clientFileName;

}
}catch(ex){

me.numberOfInvalidServerResponses++;
if(me.numberOfInvalidServerResponses>=2)
{

me.onUploadCompleteCallBack(true);

return;
}
}




if((!me.uploadStarted)&&((fileSizeOnServer==-4)||(fileSizeOnServer>0)))
{

me.onUploadStartedCallBack();
}


if(fileSizeOnServer<0){


if((fileSizeOnServer==-1)&&(!me.uploadStarted)&&(me.uploadStartedTriesRemaining>0)){

me.uploadStartedTriesRemaining=me.uploadStartedTriesRemaining-1;

me.refreshUploadInformation=true;
}
else if(fileSizeOnServer==-4)
{

me.onUploadCompleteCallBack(false);

return;
}
else
{

me.onUploadCompleteCallBack(true);

return;
}
}
else
{

if(me.uploadServer===""){

me.onUploadCompleteCallBack(true);

return;
}


if(fileSizeOnServer>=me.totalFileSize)
{

me.onUploadCompleteCallBack(false);
return;
}


me.progressUpdateCallBack(fileSizeOnServer,me.getElapsedTime());

}





if(fileSizeOnServer==me.lastFileSizeOnServer){

me.refreshUploadInformation=true;
}else{

me.refreshUploadInformation=false;
}
me.lastFileSizeOnServer=fileSizeOnServer;


var refreshRate=0;

if(me.uploadStarted){
refreshRate=me.calculateRefreshRate(fileSizeOnServer,me.totalFileSize,me.getElapsedTime());
}
else
{

me.uploadStartTimeout=me.uploadStartTimeout+me.defaultUploadStartTimeout;

me.waitingToStartCallBack(me.getElapsedTime(),me.uploadStartTimeout);

refreshRate=me.uploadStartTimeout;
}


if(!me.cancelTracking)
{
window.setTimeout(me.updateProgressFromServer,refreshRate);
}

};






this.onUploadStartedCallBack=function pb_this_onUploadStartedCallBack()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}


me.uploadStarted=true;


uploadStartedCallBack(me.totalFileSize,me.uploadFileName);

};






this.onUploadCompleteCallBack=function pb_this_onUploadCompleteCallBack(bError)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}


if(!me.uploadStarted)
{
me.onUploadStartedCallBack();
}


me.transferComplete=true;
me.uploadCompleteCallBack(me.fid,bError);

};





this.calculateRefreshRate=function pb_this_calculateRefreshRate(fileSizeOnServer,totalFileSize,timeElapsed)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}





var diskRate=fileSizeOnServer/timeElapsed;



var timeRefreshStep;


timeRefreshStep=1000*(me.refreshRateMin+1/((diskRate*me.refreshRateScale)+1/(me.refreshRateMax-me.refreshRateMin)));

return timeRefreshStep;

};




this.getElapsedTime=function pb_this_getElapsedTime()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
return((new Date()).getTime()-me.startTime);
};


this.startTrackUpload();

};




vp.uploads.tracking.SmoothUploadTracker=function uploads_tracking_SmoothUploadTracker(
trackUrl,
fid,
waitingToStartCallBack,
uploadStartedCallBack,
progressUpdateCallBack,
uploadCompleteCallBack)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}





var me=this;




this.fid=fid;








this.waitingToStartCallBack=(waitingToStartCallBack)?
waitingToStartCallBack:function(howLongWeHaveAlreadyWaited,timeTillNextCheck){};





this.uploadStartedCallBack=(uploadStartedCallBack)?
uploadStartedCallBack:function(totalFileSize,fileName){};





this.progressUpdateCallBack=(progressUpdateCallBack)?
progressUpdateCallBack:function(recievedFileSize,timeRemaining,transferRate){};





this.uploadCompleteCallBack=(uploadCompleteCallBack)?
uploadCompleteCallBack:function(fid){};




this.waitTimeThreadId=0;




this.progressThreadId=0;




this.timeWaitPeriodStart;




this.smoothUpdateInterval=100;




this.waitPeriodLength=0;





this.recievedFileSize=0;




this.timeElapsed=0;




this.transferRate=0;




this.smoothFileSizeIncrement=0;




this.smoothFileSize=0;




var transferProgressComplete=false;




this.isTransferProgressComplete=function pb_this_isTransferProgressComplete()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
return transferProgressComplete;
};




this.waitToStartTimeIncreased=function pb_this_waitToStartTimeIncreased(howLongWeHaveAlreadyWaited,timeTillNextCheck)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}


me.timeWaitPeriodStart=(new Date()).getTime();


me.waitPeriodLength=timeTillNextCheck;


if(me.waitTimeThreadId===0)
{
me.waitTimeThreadId=setInterval(me.smoothWaitingToStartThread,me.smoothUpdateInterval);
}

};




this.uploadStarted=function pb_this_uploadStarted(totalFileSize,fileName)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}


clearInterval(me.waitTimeThreadId);


me.totalFileSize=totalFileSize;


me.uploadStartedCallBack(totalFileSize,fileName);

};




this.uploadProgress=function pb_this_uploadProgress(recievedFileSize,timeElapsed)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}


me.recievedFileSize=recievedFileSize;
me.timeElapsed=timeElapsed;
me.transferRate=recievedFileSize/timeElapsed;



var smoothFileSizeIncrement=
(me.totalFileSize-recievedFileSize)/
(me.calculateTimeRemaining(recievedFileSize)/me.smoothUpdateInterval);
var maxFileSizeIncrement=me.getMaxFileSizeIncrement();
if(smoothFileSizeIncrement>maxFileSizeIncrement)
{
smoothFileSizeIncrement=maxFileSizeIncrement;
}
me.smoothFileSizeIncrement=smoothFileSizeIncrement;


me.startProgressThread();

};




this.uploadComplete=function pb_this_uploadComplete(fid,bError)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}



if(bError)
{
me.forceUploadComplete();
}
else
{



if((me.smoothFileSizeIncrement<=0)||
((me.totalFileSize-me.smoothFileSize)/me.smoothFileSizeIncrement*me.smoothUpdateInterval>1000))
{

me.smoothFileSizeIncrement=me.getMaxFileSizeIncrement();
}

me.startProgressThread();
}

};




this.cancel=function pb_this_cancel()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}


me.uploadTracker.cancel();


transferProgressComplete=true;


if(me.waitTimeThreadId>0)
{
clearInterval(me.waitTimeThreadId);
}


if(me.progressThreadId>0)
{
clearInterval(me.progressThreadId);
}

};




this.startProgressThread=function pb_this_startProgressThread()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
if(me.progressThreadId===0)
{
me.progressThreadId=setInterval(
me.smoothProgressUpdateThread,
me.smoothUpdateInterval);
}
};




this.forceUploadComplete=function pb_this_forceUploadComplete()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}


clearInterval(me.progressThreadId);


me.uploadCompleteCallBack(me.fid);




};




this.smoothWaitingToStartThread=function pb_this_smoothWaitingToStartThread()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

var timeElapsedSinceWaitPeriodStart=(new Date()).getTime()-me.timeWaitPeriodStart;
me.waitingToStartCallBack(timeElapsedSinceWaitPeriodStart,me.waitPeriodLength);
};




this.smoothProgressUpdateThread=function pb_this_smoothProgressUpdateThread()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}




me.smoothFileSize+=me.smoothFileSizeIncrement;


if(me.smoothFileSize>=me.totalFileSize)
{


me.progressUpdateCallBack(
me.smoothFileSize,
me.calculateTimeRemaining(me.totalFileSize),
me.transferRate);



me.forceUploadComplete();


transferProgressComplete=true;

}
else
{


me.progressUpdateCallBack(
me.smoothFileSize,
me.calculateTimeRemaining(me.smoothFileSize),
me.transferRate);
}

};





this.calculateTimeRemaining=function pb_this_calculateTimeRemaining(currentFileSize)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

if(me.transferRate>0)
{

var diskBytesRemaining=me.totalFileSize-currentFileSize;


return diskBytesRemaining/me.transferRate;
}
else
{

return-1;
}

};




this.getMaxFileSizeIncrement=function pb_this_getMaxFileSizeIncrement()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
return me.totalFileSize*0.10;
};

this.notifyOfTransferComplete=function pb_this_notifyOfTransferComplete()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
me.uploadTracker.notifyOfTransferComplete();
};


this.uploadTracker=new vp.uploads.tracking.UploadTracker(
trackUrl,
me.fid,
me.waitToStartTimeIncreased,
me.uploadStarted,
me.uploadProgress,
me.uploadComplete);

};




vp.uploads.tracking.getAsync=function uploads_tracking_getAsync(sUrl,fnCallBack,fnErrorCallback)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var request=new vp.crossdomain.ProxyIFrameRequest();
request.getAsync(sUrl,fnCallBack,fnErrorCallback);
};

