function CoverFlowItem(CoverFlowObj,CoverIndex,imgSrc,linkHref)
{var is_ie6=(window.external&&typeof window.XMLHttpRequest=="undefined");this.CoverFlow=CoverFlowObj;this.CoverIndex=CoverIndex;this.imgSrc=imgSrc;this.linkHref=linkHref;this.outerdiv=document.createElement("div");this.coverimg=document.createElement("img");this.edgesdiv=document.createElement("div");if(linkHref)
{var tmpA=document.createElement("a");tmpA.href=linkHref;tmpA.appendChild(this.coverimg);this.outerdiv.appendChild(tmpA);}else{this.outerdiv.appendChild(this.coverimg);}
this.outerdiv.appendChild(this.edgesdiv);this.innerdiv=document.createElement("div");this.outerdiv.appendChild(this.innerdiv);this.coverimg.src=imgSrc;this.outerdiv.style.position="absolute";this.outerdiv.style.width=this.CoverFlow.coversizeX+"px";this.coverimg.style.width="100%";this.coverimg.className="reflect";this.edgesdiv.style.position="absolute";this.edgesdiv.style.top="0px";this.edgesdiv.style.left="0px";this.edgesdiv.style.borderTopStyle="solid";this.edgesdiv.style.borderRightStyle="solid";this.edgesdiv.style.borderBottomStyle="none";this.edgesdiv.style.borderLeftStyle="solid";this.edgesdiv.style.borderLeftWidth="0px";if(!is_ie6)
{this.edgesdiv.style.borderLeftColor="transparent";this.edgesdiv.style.borderRightColor="transparent";}
else
{this.edgesdiv.style.borderLeftColor="pink";this.edgesdiv.style.borderRightColor="pink";this.edgesdiv.style.filter="chroma(color=pink)";}
this.edgesdiv.style.borderRightWidth="0px";this.edgesdiv.style.borderTopColor=this.CoverFlow.edgecolour;this.createClickHandler=function()
{var self=this;return function()
{self.CoverFlow.ClickedCover(self);};};this.coverimg.onclick=this.createClickHandler();this.Update=function(xorigin,range,xoffset)
{xoffsetabs=Math.abs(xoffset);xoffsetsign=xoffset>=0?1:-1;if(xoffsetabs<1)
{proportion=0.3+0.7*(1-(xoffsetabs-Math.floor(xoffsetabs)));}
else
{proportion=0.3;}
scaledsize=Math.round(this.CoverFlow.coversizeX*proportion);if(scaledsize<1){scaledsize=1};if(scaledsize>this.CoverFlow.coversizeX){scaledsize=this.CoverFlow.coversizeX;}
bordersize=Math.round((this.CoverFlow.coversizeX-scaledsize)*0.1);bordersizeedge=bordersize*0.5;this.coverimg.style.height=this.CoverFlow.coversizeY+"px";this.edgesdiv.style.borderTopWidth=bordersize+"px";if(xoffsetsign==1)
{this.edgesdiv.style.borderLeftWidth="0px";this.edgesdiv.style.borderRightWidth=(scaledsize+2)+"px";this.outerdiv.style.borderLeftWidth="0px";this.outerdiv.style.borderRightWidth=bordersizeedge+"px";}
else
{this.edgesdiv.style.borderLeftWidth=(scaledsize+2)+"px";this.edgesdiv.style.borderRightWidth="0px";this.outerdiv.style.borderLeftWidth=bordersizeedge+"px";this.outerdiv.style.borderRightWidth="0px";}
if(xoffsetabs>0.4)
{left=xorigin+(this.CoverFlow.coversizeX*xoffset*0.4)+(xoffsetsign*this.CoverFlow.coversizeX*0.3);if(xoffsetsign==-1)left-=bordersizeedge;}
else
{left=xorigin+(this.CoverFlow.coversizeX*xoffset);}
left-=scaledsize*0.5;left=Math.round(left);this.outerdiv.style.left=left+"px";this.outerdiv.style.width=scaledsize+"px";this.outerdiv.style.zIndex=Math.round(1000+100*proportion-xoffsetabs);};}
function CoverFlow(div,coversizeX,coversizeY,flowwidth,edgecolour,CoverClickCallback)
{this.scrollSpeed=0.20;this.scrollMaxJump=0.25;this.div=div;this.coversizeX=coversizeX;this.coversizeY=coversizeY;this.halfsize=coversizeX/2;this.flowwidth=flowwidth;this.halfwidth=flowwidth/2;this.edgecolour=edgecolour;this.CoverClickCallback=CoverClickCallback;this.div.style.position="relative";this.div.style.width=this.flowwidth+"px";this.div.style.height=1.5*this.coversizeY+"px";this.div.style.overflow="hidden";this.targetPos=0;this.scrollPos=0;this.Covers=[];while(this.div.childNodes.length>0)
{child=this.div.firstChild;if(child.nodeName=="IMG")
{this.Covers.push(new CoverFlowItem(this,this.Covers.length,child.src,""));}
if(child.nodeName=="A"&&child.childNodes.length>0&&child.childNodes[0].nodeName=="IMG")
{this.Covers.push(new CoverFlowItem(this,this.Covers.length,child.childNodes[0].src,child.href));}
this.div.removeChild(child);}
for(var i in this.Covers)
{this.div.appendChild(this.Covers[i].outerdiv);}
this.needReflections=false;this.Update=function()
{offset=this.targetPos-this.scrollPos;scrollamount=offset*this.scrollSpeed;if(Math.abs(scrollamount)>this.scrollMaxJump)
{offsetabs=Math.abs(offset);if(offsetabs>3)
{scrollamount=offset/6;}
else
{scrollamount=this.scrollMaxJump*(scrollamount>0?1:-1);}}
this.scrollPos+=scrollamount;for(i=0;i<this.Covers.length;i++)
{this.Covers[i].Update(this.halfwidth,this.halfwidth,i-this.scrollPos);}
if(this.needReflections)
{for(i=0;i<this.Covers.length;i++)
{CoverFlowReflection.add(this.Covers[i].coverimg);}
this.needReflections=false;}};this.Goto=function(newpos)
{newpos=Math.max(newpos,0);newpos=Math.min(newpos,this.Covers.length-1);this.targetPos=newpos;};this.Flip=function(flipamount)
{this.Goto(this.targetPos+flipamount);};this.GotoFirst=function()
{this.Goto(0);};this.GotoLast=function()
{this.Goto(this.Covers.length-1);};this.ClickedCover=function(Cover)
{this.Goto(Cover.CoverIndex);if(CoverClickCallback)
{CoverClickCallback(Cover);}};var scrollerinput=0;this.DoScroll=function(pix)
{scrollerinput+=pix;jumpamount=Math.floor(scrollerinput/50);scrollerinput-=(jumpamount*50);this.Flip(jumpamount);};this.ScrollToTop=function()
{this.GotoFirst();};this.ScrollToBottom=function()
{this.GotoLast();};}
if(!document.myGetElementsByClassName){document.myGetElementsByClassName=function(className){var children=document.getElementsByTagName('*')||document.all;var elements=new Array();for(var i=0;i<children.length;i++){var child=children[i];var classNames=child.className.split(' ');for(var j=0;j<classNames.length;j++){if(classNames[j]==className){elements.push(child);break;}}}
return elements;}}
var CoverFlowReflection={defaultHeight:0.4,defaultOpacity:0.2,add:function(image){CoverFlowReflection.remove(image);options={"height":CoverFlowReflection.defaultHeight,"opacity":CoverFlowReflection.defaultOpacity}
try{var d=document.createElement('div');var p=image;var classes=p.className.split(' ');var newClasses='';for(j=0;j<classes.length;j++){if(classes[j]!="reflect"){if(newClasses){newClasses+=' '}
newClasses+=classes[j];}}
var reflectionHeight=Math.floor(p.height*options['height']);var divHeight=Math.floor(p.height*(1+options['height']));var reflectionWidth=p.width;if(document.all&&!window.opera){if(p.parentElement.tagName=='A'){var d=document.createElement('a');d.href=p.parentElement.href;}
d.className=newClasses;p.className='reflected';d.style.cssText=p.style.cssText;p.style.verticalAlign='bottom';var reflection=document.createElement('img');reflection.src=p.src;reflection.style.width='100%';reflection.style.display='block';reflection.style.height=p.height+"px";reflection.style.marginBottom="-"+(p.height-reflectionHeight)+'px';reflection.style.filter='flipv progid:DXImageTransform.Microsoft.Alpha(opacity='+(options['opacity']*100)+', style=1, finishOpacity=0, startx=0, starty=0, finishx=0, finishy='+(options['height']*100)+')';d.style.width='100%';d.style.height=divHeight+'px';p.parentNode.replaceChild(d,p);d.appendChild(p);d.appendChild(reflection);}else{var canvas=document.createElement('canvas');if(canvas.getContext){d.className=newClasses;p.className='reflected';d.style.cssText=p.style.cssText;p.style.verticalAlign='bottom';var context=canvas.getContext("2d");canvas.style.height=reflectionHeight+'px';canvas.style.width='100%';canvas.height=reflectionHeight;canvas.width=reflectionWidth;d.style.width='100%';d.style.height=divHeight+'px';p.parentNode.replaceChild(d,p);d.appendChild(p);d.appendChild(canvas);context.save();context.translate(0,image.height-1);context.scale(1,-1);context.drawImage(image,0,0,reflectionWidth,image.height);context.restore();context.globalCompositeOperation="destination-out";var gradient=context.createLinearGradient(0,0,0,reflectionHeight);gradient.addColorStop(1,"rgba(255, 255, 255, 1.0)");gradient.addColorStop(0,"rgba(255, 255, 255, "+(1-options['opacity'])+")");context.fillStyle=gradient;context.rect(0,0,reflectionWidth,reflectionHeight*2);context.fill();}}}catch(e){}},remove:function(image){if(image.className=="reflected"){image.className=image.parentNode.className;image.parentNode.parentNode.replaceChild(image,image.parentNode);}}};function addCoverFlowReflections(){var rimages=document.myGetElementsByClassName('reflect');for(i=0;i<rimages.length;i++){CoverFlowReflection.add(rimages[i]);}}