                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                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.Image=function image_Image(type,id)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}





var me=this;




this.type=(typeof type=="undefined"?vp.image.Image.Type.Upload:parseInt(type));




this.id=(id?parseInt(id):vp.image.Image.InvalidId);




this.languageId=1;





this.fileId=null;






this.previewUrl=null;
};





vp.image.Image.Type={
Library:0,
Upload:1,
Logo:2,
Caricature:3,
Adjustment:4,
Partner:5
};




vp.image.Image.InvalidId=-1;






vp.image.EditedImage=function image_EditedImage(type,id)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}




var me=this;





this.inheritFrom=vp.image.Image;
this.inheritFrom(type,id);





this.rotation=vp.image.EditedImage.Rotation.None;





this.cropInfo={};
this.cropInfo.left=0;
this.cropInfo.right=0;
this.cropInfo.top=0;
this.cropInfo.bottom=0;




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

return((me.cropInfo.left!==0)||
(me.cropInfo.right!==0)||
(me.cropInfo.top!==0)||
(me.cropInfo.bottom!==0));

};

};





vp.image.EditedImage.Rotation={
None:0,
Rotation90:90,
Rotation180:180,
Rotation270:270
};








vp.image.EditedImageOnDocument=function image_EditedImageOnDocument(type,id)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}




var me=this;





this.inheritFrom=vp.image.EditedImage;
this.inheritFrom(type,id);





this.container=null;





this.externalId="";





this.locked=true;











this.goodPrintPixelRatio=null;





this.acceptableDPI=null;
};







vp.image.StudioDocItemTypeToImageType=function image_StudioDocItemTypeToImageType(eDocItemType)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
switch(eDocItemType)
{
case DOCITEM_TYPE_LIBRARY_IMAGE:
case DOCITEM_TYPE_PLACEHOLDER:
return vp.image.Image.Type.Library;
case DOCITEM_TYPE_UPLOADED_IMAGE:
return vp.image.Image.Type.Upload;
case DOCITEM_TYPE_LOGO:
return vp.image.Image.Type.Logo;
case DOCITEM_TYPE_CARICATURE:
return vp.image.Image.Type.Caricature;
default:
throw"vp.image.StudioDocItemTypeToImageType: invalid document item type";
}
return null;
};







vp.image.ImageTypeToStudioDocItemType=function image_ImageTypeToStudioDocItemType(eImageType)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
switch(eImageType)
{
case vp.image.Image.Type.Library:
return DOCITEM_TYPE_LIBRARY_IMAGE;
case vp.image.Image.Type.Upload:
return DOCITEM_TYPE_UPLOADED_IMAGE;
case vp.image.Image.Type.Logo:
return DOCITEM_TYPE_LOGO;
case vp.image.Image.Type.Caricature:
return DOCITEM_TYPE_CARICATURE;
default:
throw"vp.image.StudioDocItemTypeToImageType: invalid document item type";
}
return null;
};







vp.image.convertStudioImageToEditedImageOnDocument=function image_convertStudioImageToEditedImageOnDocument(oDocItemImage,oEditor)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

var imageType=vp.image.StudioDocItemTypeToImageType(oDocItemImage.type);


var image=new vp.image.EditedImageOnDocument(imageType,oDocItemImage.getItemID());





image.cropInfo={};
vp.core.applyProperties(oDocItemImage.cropInfo,image.cropInfo);

image.container=oDocItemImage.imageContainer.parentNode;
image.externalId=oDocItemImage.id;
image.locked=oDocItemImage.locked;
image.rotation=oDocItemImage.coordinates.rotation.angleInDegrees;




image.goodPrintPixelRatio=(oEditor.productAcceptableDPI/300.0)/(oEditor.zoomFactor);
image.acceptableDPI=oEditor.productAcceptableDPI;



return image;
};









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




var me=this;




this.image=image;




this.previewSize={};
this.previewSize.width=0;
this.previewSize.height=0;




this.useCropInfo=true;




this.color=vp.image.ImagePreview.Color.FullColor;




this.outputType=vp.image.ImagePreview.OutputType.Default;




this.getPreviewUrl=function pb_this_getPreviewUrl()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
if(me.image.previewUrl)
{
return me.image.previewUrl;
}
else if(me.image.type==vp.image.Image.Type.Library&&!me.useCropInfo&&me.previewSize.width===0&&me.previewSize.height===0)
{
return me.getLibraryThumbnailUrl();
}
else if(me.image.type==vp.image.Image.Type.Caricature)
{
return me.getCaricaturePreviewUrl();
}
else if(me.image.type==vp.image.Image.Type.Adjustment)
{
return me.getImageAdjustmentPreviewUrl();
}
else
{
return me.getImagePreviewUrl();
}
};

this.getImageAdjustmentPreviewUrl=function pb_this_getImageAdjustmentPreviewUrl()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var url=new vp.web.URL(vp.image.adjustments.serviceUrl+'/atmosimagepreview.aspx');

url.setItem('adjustment_id',me.image.id);
url.setItem('width',me.previewSize.width);
url.setItem('height',me.previewSize.height);

};




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

var url=new vp.web.URL('/vp/ns/logos/ViewLogo.aspx');


url.setItem('logo_id',me.image.id);


url.setItem('width',me.previewSize.width);
url.setItem('height',me.previewSize.height);


url.setItem('langid',me.image.languageId);

return url.toString();

};




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

var url=new vp.web.URL('/vp/ns/imagepreview.caspx');


var imageType="invalid";
switch(me.image.type)
{
case vp.image.Image.Type.Library:
imageType="image";
break;
case vp.image.Image.Type.Upload:
imageType="upload";
break;
case vp.image.Image.Type.Adjustment:
imageType="adjustment";
break;
case vp.image.Image.Type.Logo:
imageType="logo";
break;
default:

break;
}
url.setItem('image_type',imageType);


url.setItem('image_id',me.image.id);


url.setItem('trim',1);


if(me.previewSize.width>0)
{
url.setItem('maxwidth',me.previewSize.width);
}
if(me.previewSize.height>0)
{
url.setItem('maxheight',me.previewSize.height);
}


url.setItem('trypng',1);


if(me.outputType===vp.image.ImagePreview.OutputType.Png)
{
url.setItem('png',1);
}
else if(me.outputType===vp.image.ImagePreview.OutputType.Gif)
{
url.setItem('gif',1);
}


if(me.color==vp.image.ImagePreview.Color.GrayScale)
{
url.setItem('gs',1);
}

switch(me.image.rotation)
{
case vp.image.EditedImage.Rotation.None:
case vp.image.EditedImage.Rotation.Rotation90:
case vp.image.EditedImage.Rotation.Rotation180:
case vp.image.EditedImage.Rotation.Rotation270:
url.setItem('rotation',me.image.rotation);
break;
default:
break;
}


if(me.image.cropInfo&&me.image.isCropped()&&me.useCropInfo)
{
url.setItem('use_crop',1);
if(me.image.cropInfo.left!==0)
{
url.setItem('cropleft',me.image.cropInfo.left);
}
if(me.image.cropInfo.top!==0)
{
url.setItem('croptop',me.image.cropInfo.top);
}
if(me.image.cropInfo.right!==0)
{
url.setItem('cropright',me.image.cropInfo.right);
}
if(me.image.cropInfo.bottom!==0)
{
url.setItem('cropbottom',me.image.cropInfo.bottom);
}
}

return url.toString();
};

this.getLibraryThumbnailUrl=function pb_this_getLibraryThumbnailUrl()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
return'/library/image/th/'+me.image.id+'.jpg';
};

this.getCaricaturePreviewUrl=function pb_this_getCaricaturePreviewUrl()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var url=new vp.web.URL('/vp/ns/caricatures/caricature_preview.aspx');


url.setItem('caricature_id',me.image.id);


url.setItem('width',me.previewSize.width);
url.setItem('height',me.previewSize.height);

return url.toString();
};
};




vp.image.ImagePreview.Color={
FullColor:0,
GrayScale:1
};




vp.image.ImagePreview.OutputType={
Default:0,
Png:1,
Gif:2
};







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



var me=this;





var my={};






my.image=null;





my.callbackFnOK=null;





my.callbackFnError=null;






this.intrinsicWidth=null;





this.intrinsicHeight=null;





this.name=null;





this.loadImageInfo=function pb_this_loadImageInfo(oImage,cbOK,cbError)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

this.intrinsicWidth=null;
this.intrinsicHeight=null;
this.name=null;

my.image=oImage;
my.callbackFnOK=cbOK;
my.callbackFnError=cbError;

var url=new vp.web.URL('/vp/ns/imageinfo.caspx');


url.setItem('image_id',my.image.id);



var imageType="invalid";
switch(my.image.type)
{
case vp.image.Image.Type.Library:
imageType="image";
break;
case vp.image.Image.Type.Upload:
imageType="upload";
break;
default:
throw"invalid image type";
break;
}
url.setItem('image_type',imageType);

try{
vp.http.getAsync(url,loadImageCallback);
}catch(oError){
my.callbackFnError();
}
};





var loadImageCallback=function pv_loadImageCallback(sResponse)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
try{
var oInfo=vp.http.parseJSON(sResponse);
if(oInfo.error)
{
my.callbackFnError();
}
else
{
me.intrinsicWidth=oInfo.intrinsicWidth;
me.intrinsicHeight=oInfo.intrinsicHeight;
me.name=oInfo.name;

my.callbackFnOK();
}
}catch(oError){
alert(oError);
my.callbackFnError();
}
};
};










vp.image.ImageAndInfoLoader=function image_ImageAndInfoLoader(aElements,aUrls,aImageInfos,aImages,fnLoad,fnError)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}



var me=this;





var my={};




my.cbLoad=fnLoad;
my.cbError=fnError;




my.arrayImgElements=aElements;
my.arrayImgUrls=aUrls;
my.arrayImageInfos=aImageInfos?aImageInfos:new Array();
my.arrayImages=aImages?aImages:new Array();




my.loadCounter=0;
my.loadCounterGoal=0;





this.id=Math.random();




var LoadOK=function pv_LoadOK()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
my.loadCounter=my.loadCounter+1;
if(my.loadCounter<my.loadCounterGoal)
{
return;
}

ClearHandlers();
my.cbLoad(me.id);
};




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

ClearHandlers();
my.cbError(me.id);
};




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

for(var i=0;i<my.arrayImgUrls.length;i++)
{
vp.events.remove(my.arrayImgElements[i],"error",LoadError);
vp.events.remove(my.arrayImgElements[i],"load",LoadOK);
}
};






this.Load=function pb_this_Load()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
if(my.arrayImgElements.length!=my.arrayImgUrls.length)
{
throw"ImageAndInfoLoader: array of elements be as long as array of urls";
}
if(my.arrayImageInfos.length!=my.arrayImages.length)
{
throw"ImageAndInfoLoader: array of ImageInfo objects must be as long as array of Image objects";
}

my.loadCounter=0;
my.loadCounterGoal=my.arrayImgUrls.length+my.arrayImages.length;

var i;

for(i=0;i<my.arrayImgUrls.length;i++)
{
vp.events.add(my.arrayImgElements[i],"error",LoadError);
vp.events.add(my.arrayImgElements[i],"load",LoadOK);
my.arrayImgElements[i].src=my.arrayImgUrls[i];
}

for(i=0;i<my.arrayImages.length;i++)
{
my.arrayImageInfos[i].loadImageInfo(my.arrayImages[i],LoadOK,LoadError);
}
};
};
