cn_zoom_loops=0;

// Denne funktion klargører zooming af baggrunds-billedet
function cn_zoom_init(){
	// Er ProductImage indlæst endnu? - Hvis ikke prøver vi igen om 50ms
	var img_container=document.getElementById('ProductImage');
	if(img_container) return cn_zoom_init2();

	// Opdater antal loops (maks 20!)
	cn_zoom_loops++;
	if(cn_zoom_loops==20) return false;

	// Prøv igen om 50ms
	setTimeout(cn_zoom_init,50);
}
function cn_zoom_init2(){
	// Klargør variabler
	var img_container=document.getElementById('ProductImage'); if(!img_container) return false;
	img_container.style.position="relative";

	// Klargør billedet
	var img_small=img_container.getElementsByTagName('img')[0];
	img_small.posX=0; img_small.posY=0;

	var tmp=img_container;
	while(tmp){img_small.posX+=tmp.offsetLeft; img_small.posY+=tmp.offsetTop; tmp=tmp.offsetParent;}
	tmp=null;

	window.onresize=function(){cn_resize(img_small);}

	// Klargør zoom-rammen
	var img_frame=document.getElementById('ProductImageZoom'); var s=img_frame.style;
	s.position="relative"; s.overflow="hidden"; s.padding="1px";

	// Opret det zoomede billede
	var img_zoom=document.createElement('img'); var s=img_zoom.style;
	s.visibility="hidden"; s.position="absolute"; s.top="0px"; s.left="0px";

	// Indlæs det zoomede billede
	var tmp=img_small.src.split('.'); var src='';
	var i=tmp.length-1; var j=i;

	if(i>0)do{
		src+=(src?'.':'')+tmp[j-i];
	}while(--i);

	src+='-o.'+tmp[tmp.length-1];
	img_zoom.src=src;

	img_frame.appendChild(img_zoom);

	// Klargør variabler
	img_container.img=img_small;

	img_small.container=img_container;
	img_small.zoom=img_zoom;

	img_zoom.small=img_small;
	img_zoom.img_frame=img_frame;

	if(!img_zoom.complete) img_zoom.onload=cn_zoom_init3;
	else cn_zoom_init3();

	// Ryd hukommelsen
	img_zoom=null; img_frame=null; img_container=null; s=null;
}
function cn_zoom_init3(){
	// Opret den boks, der indikerer hvilken del af billedet der er fremhævet
	var highlight=document.createElement('div'); var s=highlight.style;
	s.visibility="hidden"; s.background="#FFFFFF"; s.border="1px solid #ac9e8b"; s.position="absolute"; s.top="0px"; s.left="0px";
	s.opacity=0.5; s.MozOpacity=0.5; s.KhtmlOpacity=0.5; s.filter='alpha(opacity=50)';

	s.width=Math.round((this.img_frame.offsetWidth-0)*(this.small.offsetWidth/this.offsetWidth))+'px';
	s.height=Math.round((this.img_frame.offsetHeight-0)*(this.small.offsetHeight/this.offsetHeight))+'px'

	highlight.img=this.small;

	this.small.container.appendChild(highlight);
	this.small.highlight=highlight;

	// Ryd hukommelsen
	highlight=null;

	// Klargør zoom af billede
	var c=this.small.container;
	if(document.attachEvent){
		c.attachEvent('onmouseover',cn_zoom_over);
		c.attachEvent('onmouseout',cn_zoom_out);
		c.attachEvent('onmousemove',cn_zoom);
	}else{
		c.addEventListener('mouseover',cn_zoom_over,false);
		c.addEventListener('mouseout',cn_zoom_out,false);
		c.addEventListener('mousemove',cn_zoom,false);
	}
}

// Denne funktion opdaterer info, når vinduet resizes
function cn_resize(img){
	img.posX=0; img.posY=0; var tmp=img.container;
	while(tmp){img.posX+=tmp.offsetLeft; img.posY+=tmp.offsetTop; tmp=tmp.offsetParent;}
	tmp=null;
}

// Denne funktion viser det zoomede billede, når musen føres over det lille billede
function cn_zoom_over(e){
	// Indlæs input
	var e=e||window.event;
	var src=e.srcElement||e.target;
	if(src.tagName.toLowerCase()!="img") src=src.img;

	// Vis billedet
	var s=src.zoom.img_frame.style;
	s.padding="0px"; s.border="0px solid #ac9e8b";

	src.zoom.style.visibility="visible";
	src.highlight.style.visibility="visible";
}

// Denne funktion skjuler det zoomede billede, når musen fjernes fra det lille billede
function cn_zoom_out(e){
	// Indlæs input
	var e=e||window.event;
	var src=e.srcElement||e.target;
	if(src.tagName.toLowerCase()!="img") src=src.img;

	// Vis billedet
	var s=src.zoom.img_frame.style;
	s.border="0px"; s.padding="1px";

	src.zoom.style.visibility="hidden";
	src.highlight.style.visibility="hidden";
}

// Håndterer zoom af billede
function cn_zoom(e){
	// Indlæs input
	var e=e||window.event;
	var src=e.srcElement||e.target;
	if(src.tagName.toLowerCase()!="img") src=src.img;

	var x=(e.clientX||e.pageX)+(document.body.scrollLeft||document.documentElement.scrollLeft||window.pageXOffset||0)-src.posX-Math.round(src.highlight.offsetWidth/2);
	var y=(e.clientY||e.pageY)+(document.body.scrollTop||document.documentElement.scrollTop||window.pageYOffset||0)-src.posY-Math.round(src.highlight.offsetHeight/2);

	x=Math.max(x,0); x=Math.min(x,src.offsetWidth-src.highlight.offsetWidth);
	y=Math.max(y,0); y=Math.min(y,src.offsetHeight-src.highlight.offsetHeight);

	// Flyt fokus-boksen
	var s=src.highlight.style;
	s.left=x+"px"; s.top=y+"px";

	// Flyt det zoomede billede
	var s=src.zoom.style;
	s.left=Math.round(x*src.zoom.offsetWidth/src.offsetWidth*-1)+"px";
	s.top=Math.round(y*src.zoom.offsetHeight/src.offsetHeight*-1)+"px";
}

document.cn_modules[document.cn_modules.length]=cn_zoom_init;