This version only works with more than one image per product.
In Modules/ProductInfo.ascx
<script language="javascript" type="text/javascript">
function UpdateMainImage(url, bigurl) {
var imgMain = document.getElementById('zoom1');
imgMain.href = url;
}
</script>
<div class="product-details-info">
<div class="picture">
<script type="text/JavaScript" src="/Scripts/cloud-zoom.1.0.2.min.js"></script>
<a href="" class='cloud-zoom' id="zoom1" rel="position: 'inside' , showTitle: false, adjustX:0, adjustY:0">
<asp:Image ID="defaultImage" runat="server" />
</a>
<div class="clear"></div>
<asp:ListView ID="lvProductPictures" runat="server" GroupItemCount="3">
<LayoutTemplate>
<div class="thumbnails">
<asp:PlaceHolder runat="server" ID="groupPlaceHolder"></asp:PlaceHolder>
</div>
</LayoutTemplate>
<GroupTemplate>
<asp:PlaceHolder runat="server" ID="itemPlaceHolder"></asp:PlaceHolder>
</GroupTemplate>
<ItemTemplate>
<a id="" href="<%#this.PictureService.GetPictureUrl((Picture)Container.DataItem)%>" class="cloud-zoom-gallery" title='<%= lProductName.Text%>' rel="useZoom: 'zoom1', smallImage: '<%#this.PictureService.GetPictureUrl((Picture)Container.DataItem, 350)%>' ">
<img src="<%#this.PictureService.GetPictureUrl((Picture)Container.DataItem, 50)%>" alt="Product image" /></a>
</ItemTemplate>
</asp:ListView>
<script type="text/javascript">
var i = 1;
$(".thumbnails a").each(function (){
$(this).attr('id', ''+i+'');
i++;
});
$(document).ready(function () {
$('#1').click();
});
</script>
</div>
And here is Integration with extra option "View Full Size Image"
<script language="javascript" type="text/javascript">
function UpdateMainImage(url, bigurl) {
var imgMain = document.getElementById('zoom1');
imgMain.href = url;
}
function showHref(elementID){
document.getElementById('fullview').href = document.getElementById(elementID).href;
document.getElementById('fullview').title = document.getElementById(elementID).title;
}
</script>
<div class="product-details-info">
<div class="picture">
<script type="text/JavaScript" src="/Scripts/cloud-zoom.1.0.2.min.js"></script>
<a href="" class='cloud-zoom' id="zoom1" rel="position: 'inside' , showTitle: false, adjustX:0, adjustY:0">
<asp:Image ID="defaultImage" runat="server" />
</a>
<div class="clear"></div>
<a id="fullview" href="" rel="lightbox-p" title="">View Full Size Image</a>
<asp:ListView ID="lvProductPictures" runat="server" GroupItemCount="6">
<LayoutTemplate>
<div class="thumbnails">
<asp:PlaceHolder runat="server" ID="groupPlaceHolder"></asp:PlaceHolder>
</div>
</LayoutTemplate>
<GroupTemplate>
<asp:PlaceHolder runat="server" ID="itemPlaceHolder"></asp:PlaceHolder>
</GroupTemplate>
<ItemTemplate>
<a id="" onclick ="showHref(this.id);" href="<%#this.PictureService.GetPictureUrl((Picture)Container.DataItem)%>" class="cloud-zoom-gallery" title='<%= lProductName.Text%>' rel="useZoom: 'zoom1', smallImage: '<%#this.PictureService.GetPictureUrl((Picture)Container.DataItem, 350)%>' ">
<img src="<%#this.PictureService.GetPictureUrl((Picture)Container.DataItem, 50)%>" alt="Product image" /></a>
</ItemTemplate>
</asp:ListView>
<script type="text/javascript">
var i = 1;
$(".thumbnails a").each(function (){
$(this).attr('id', ''+i+'');
i++;
});
$(document).ready(function () {
$('#1').click();
});
</script>
</div>
Finally, to remove de "Loading..." message when the image first loading, edit de Style Sheet cloud-zoom.css
.cloud-zoom-loading {
color:white;
background:#222;
padding:3px;
border:1px solid #000;
display: none;
}