                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                

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.image)=="undefined")
{vp.image=function image(){if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}};}
vp.image.SearchedImage=function image_SearchedImage(type,id,iCreated,iWidth,iHeight,sName)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var me=this;this.created=parseInt(iCreated);this.width=parseInt(iWidth);this.height=parseInt(iHeight);this.name=sName;this.inheritFrom=vp.image.Image;this.inheritFrom(type,id);};vp.image.SearchedProject=function image_SearchedProject(sName,iDocId,sModified,images)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var me=this;this.sName=sName;this.iDocId=iDocId;this.sModified=sModified;this.oImages=images;};vp.image.Search=function image_Search(fnOnSearchCompleteHandler,bIsProjectSearch)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var me=this;this.images=null;this.projects=null;this.onsearchcomplete=new vp.events.CustomEvent(this,"onsearchcomplete");if(fnOnSearchCompleteHandler)
{this.onsearchcomplete.addHandler(fnOnSearchCompleteHandler);}
this.searchByShopper=function pb_this_searchByShopper(iImageTypes,bSortLastUsed)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
if(iImageTypes&vp.image.Search.Type.Library)
{throw new Error("vp.image.Search.searchByShopper: this method does not support Library image search");}
doSearch(iImageTypes,undefined,undefined,bSortLastUsed);};this.searchByKeywords=function pb_this_searchByKeywords(sSearchWords,iCategoryId)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
doSearch(vp.image.Search.Type.Library,sSearchWords,iCategoryId);};var doSearch=function pv_doSearch(iImageTypes,sSearchWords,iCategoryId,bSortLastUsed)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var searchURL=new vp.web.URL("/vp/ns/image_search.aspx");searchURL.setItem("t",iImageTypes);searchURL.setItem("p",sSearchWords);searchURL.setItem("cat",iCategoryId);searchURL.setItem("project",bIsProjectSearch);searchURL.setItem("lastused",bSortLastUsed);searchURL.setItem("ts",new Date().getTime());try
{vp.http.getAsync(searchURL,searchCallback);}
catch(ex)
{vp.logger.logError(Math.random(),"vp.image.Search","vp.image.Search: AJAX search error",vp.logger.Severity.Error);searchCallback(null);}};var searchCallback=function pv_searchCallback(data)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
me.images=[];me.projects=[];var isProjectSearch=false;if(data)
{var imageDataArray=vp.http.parseJSON(data);if(imageDataArray.length>0)
{if(imageDataArray[0].projectsignature)
{isProjectSearch=true;}}
var i;if(isProjectSearch)
{for(i=1;i<imageDataArray.length;i++)
{me.projects[i-1]=createProject(imageDataArray[i]);}}
else
{for(i=0;i<imageDataArray.length;i++)
{me.images[i]=createImage(imageDataArray[i]);}}}
var e={};e.images=me.images;if(isProjectSearch)
{e.projects=me.projects;}
me.onsearchcomplete.fire(e);};var createProject=function pv_createProject(projectSpec)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var images=[];for(var i=0;i<projectSpec.images.length;i++)
{images[i]=createImage(projectSpec.images[i]);}
var oProject=new vp.image.SearchedProject(projectSpec.name,projectSpec.docId,projectSpec.modified,images);return oProject;};var createImage=function pv_createImage(imageSpec)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var imgType=vp.image.Search.Type.toImageType(imageSpec.type);var oImage=new vp.image.SearchedImage(imgType,imageSpec.id,imageSpec.created,imageSpec.width,imageSpec.height,imageSpec.name);if(imageSpec.fileId)
{oImage.fileId=imageSpec.fileId;}
if(imageSpec.pvwUrl)
{oImage.previewUrl=imageSpec.pvwUrl;}
return oImage;};this.getImage=function pb_this_getImage(eType,iId)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
for(var i=0;i<me.images.length;i++)
{if(iId==me.images[i].id&&eType==me.images[i].type)
{return me.images[i];}}
return null;};};vp.image.Search.Type={Library:1,Upload:2,Logo:4,Caricature:8,Partner:16};vp.image.Search.Type.fromImageType=function image_Search_Type_fromImageType(eImageType)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
switch(eImageType)
{case vp.image.Image.Type.Library:return vp.image.Search.Type.Library;case vp.image.Image.Type.Upload:return vp.image.Search.Type.Upload;case vp.image.Image.Type.Logo:return vp.image.Search.Type.Logo;case vp.image.Image.Type.Caricature:return vp.image.Search.Type.Caricature;case vp.image.Image.Type.Partner:return vp.image.Search.Type.Partner;default:throw new Error("vp.image.Search.Type.fromImageType: Unhandled image type: "+eImageType);}};vp.image.Search.Type.toImageType=function image_Search_Type_toImageType(eSearchType)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
switch(eSearchType)
{case vp.image.Search.Type.Library:return vp.image.Image.Type.Library;case vp.image.Search.Type.Upload:return vp.image.Image.Type.Upload;case vp.image.Search.Type.Logo:return vp.image.Image.Type.Logo;case vp.image.Search.Type.Caricature:return vp.image.Image.Type.Caricature;case vp.image.Search.Type.Partner:return vp.image.Image.Type.Partner;default:throw new Error("vp.image.Search.Type.toImageType: Unhandled image type: "+eSearchType);}};vp.image.Search.Mode={Advanced:1,SimpleALL:2,SimpleANY:3};