/*
 *	jquery.carousell.js a1.02
 *	carousell plugin for jquery 1.2.3+
 *
 *	Coding:
 *	Soma - philipp@urlich.ch / soma.urlich.ch
 *	October 2008
 *	Requires:
 *	jquery.timers.js
 *	jquery.pause.js
 *  jquery.easing.js
 *	reflection.js (not jquery)
 *
 *
 * ------------------------------------------------------------- */
jQuery.fn.carousell=function(settings){settings=jQuery.extend({imageHeight:180,imageWidth:135,visibleCount:3,currentPosX:170,currentPosY:10,stepX:-100,stepZ:50,stepY:30,zScale:0.75,reflectHeight:30,itemSpeed:1000,offsetInvisible:250},settings);this.each(function(){var carousellName=jQuery(this).attr('id');var itemSpeed=settings.itemSpeed;var visibleCount=settings.visibleCount;var container=jQuery(this).find('div.container');var itemCount=container.find('.image').length;var backLink=jQuery(this).find('a.back');var nextLink=jQuery(this).find('a.next');var counterDisplay=jQuery(this).find('span.counter_display');counterDisplay.text(1+'/'+itemCount);var zIndex=new Array(itemCount);for(i=0;i<itemCount;i++){zIndex[i]=itemCount-i;}
var arrRotation=new Array();for(i=0;i<itemCount;i++){arrRotation.push(i+1);}
var imagePos=new Array(visibleCount);for(i=0;i<visibleCount;i++){imagePos[i]=new Object();imagePos[i]['x']=settings.currentPosX;imagePos[i]['y']=settings.currentPosY;imagePos[i]['w']=settings.imageWidth;imagePos[i]['h']=settings.imageHeight;imagePos[i]['ch']=imagePos[i]['h']/100*settings.reflectHeight;imagePos[i]['a']=1;imagePos[i]['d']="block";settings.stepX*=settings.zScale;settings.stepY*=settings.zScale;settings.currentPosX=imagePos[i]['x']+settings.stepX;settings.currentPosY=imagePos[i]['y']+settings.stepY;settings.imageWidth=imagePos[i]['w']*settings.zScale;settings.imageHeight=imagePos[i]['h']*settings.zScale;}
imagePos[visibleCount]=new Object();imagePos[visibleCount]['x']=settings.currentPosX+settings.offsetInvisible;imagePos[visibleCount]['y']=settings.currentPosY;imagePos[visibleCount]['w']=settings.imageWidth;imagePos[visibleCount]['h']=settings.imageHeight;imagePos[visibleCount]['ch']=imagePos[visibleCount]['h']/100*settings.reflectHeight;imagePos[visibleCount]['a']=0;imagePos[visibleCount]['d']="none";container.find('.image').each(function(i){if(i>=visibleCount){i=visibleCount;}
jQuery(this).css({left:imagePos[i]['x'],top:imagePos[i]['y'],display:'block',opacity:imagePos[i]['a'],zIndex:zIndex[i],height:(imagePos[i]['h']+imagePos[i]['ch']),width:imagePos[i]['w']});jQuery(this).children('div').css({height:(imagePos[i]['h']+imagePos[i]['ch']),width:imagePos[i]['w']});jQuery(this).find('img').css({width:imagePos[i]['w'],height:imagePos[i]['h']});jQuery(this).find('canvas').css({width:imagePos[i]['w'],height:imagePos[i]['ch']});});jQuery(this).find('div.image').each(function(i){jQuery(this).attr({id:carousellName+"_image"+(i+1)})});jQuery(this).find('div.teaser').each(function(i){jQuery(this).attr({id:carousellName+"_teaser"+(i+1)})});jQuery(this).find('div.teaser:first').each(function(i){jQuery(this).css({display:'block'})});backLink.attr({id:carousellName+"_back"});nextLink.attr({id:carousellName+"_next"});backLink.bind('click',function(){offset=-1;var itemCut=arrRotation.pop();arrRotation.unshift(itemCut);jQuery.ItemAnim.moveItems(container,counterDisplay,arrRotation,imagePos,zIndex,carousellName,itemCount,visibleCount,itemSpeed,"back");});nextLink.bind('click',function(){offset=1;var itemCut=arrRotation.shift();arrRotation.push(itemCut);jQuery.ItemAnim.moveItems(container,counterDisplay,arrRotation,imagePos,zIndex,carousellName,itemCount,visibleCount,itemSpeed,"next");});});return this;};jQuery.ItemAnim={moveItems:function(container,counterDisplay,arrRotation,imagePos,zIndex,carousellName,itemCount,visibleCount,itemSpeed,direction){container.find('.teaser:visible').hide(0);container.find('#'+carousellName+"_teaser"+arrRotation[0]).fadeIn(itemSpeed);counterDisplay.text(arrRotation[0]+'/'+itemCount);for(i=0;i<visibleCount;i++){container.find('#'+carousellName+"_image"+arrRotation[i]).each(function(){jQuery(this).css({zIndex:zIndex[i]});jQuery(this).animate({left:imagePos[i]['x'],top:imagePos[i]['y'],opacity:imagePos[i]['a'],width:imagePos[i]['w'],height:imagePos[i]['ch']+imagePos[i]['h']},itemSpeed,'easeInOutExpo');jQuery(this).find('img').animate({width:imagePos[i]['w'],height:imagePos[i]['h']},itemSpeed,'easeInOutExpo');jQuery(this).find('canvas').animate({width:imagePos[i]['w'],height:imagePos[i]['ch']},itemSpeed,'easeInOutExpo');});}
if(direction=='next'){offset=itemCount-1;}
else if(direction=='back'){offset=visibleCount;}
if(itemCount>visibleCount){container.find('#'+carousellName+"_image"+arrRotation[offset]).each(function(){jQuery(this).css({zIndex:zIndex[offset]});jQuery(this).animate({left:imagePos[visibleCount]['x'],top:imagePos[visibleCount]['y'],opacity:imagePos[visibleCount]['a'],width:imagePos[i]['w'],height:imagePos[i]['ch']+imagePos[i]['h']},itemSpeed,'easeOutExpo');jQuery(this).find('img').animate({width:imagePos[visibleCount]['w'],height:imagePos[visibleCount]['h']},itemSpeed,'easeOutExpo');jQuery(this).find('canvas').animate({width:imagePos[visibleCount]['w'],height:imagePos[visibleCount]['ch']},itemSpeed,'easeOutExpo');});}}};