var FilmCoverflow=new Class({options:{sliderElement:"sliderHomeList",movePreviousElement:"coverflowMovePrevious",moveNextElement:"coverflowMoveNext",displayedElementNumber:10,minImageHeight:60,maxImageHeight:220,leftOffset:320,autoMove:true,updateTimer:4500,autoMoveLoopNumber:10,preloadDataDistance:20,first:true},initialize:function(b,a){this.data=a;this.dataCgp={};this.minImageHeight=this.options.minImageHeight;this.maxImageHeight=this.options.maxImageHeight;this.displayedElementNumber=this.options.displayedElementNumber;
this.leftOffset=this.options.leftOffset;this.autoMoveLoopNumber=this.options.autoMoveLoopNumber;this.updateTimer=this.options.updateTimer;this.preloadDataDistance=this.options.preloadDataDistance;this.manualActionMade=false;this.mainElement=b;this.detailElement=this.mainElement.getElement("div.filmDetails");this.first=this.options.first;this.detailElement.addEvent("mouseover",function(){this.stopAutoMove()}.bind(this));this.detailElement.addEvent("mouseleave",function(){this.launchAutoMove()}.bind(this));
window.addEvent("scroll",function(){var a=$("sliderHomeList").getPosition().y+15;window.getScroll().y>a?this.stopAutoMove():this.launchAutoMove()}.bind(this));this.movePreviousElement=$(this.options.movePreviousElement);this.movePreviousElement.addEvent("click",function(){this.manualActionMade=true;this.stopAutoMove();this.moveToPrevious()}.bind(this));this.moveNextElement=$(this.options.moveNextElement);this.moveNextElement.addEvent("click",function(){this.manualActionMade=true;this.stopAutoMove();
this.moveToNext()}.bind(this));this.sliderElement=$(this.options.sliderElement);var c=this.sliderElement.getSize();this.sliderWidth=c.x;this.sliderHeight=c.y;this.reservationLoader=$("reservationSchedule").getElement(".loader");this.reservationCinemaDetails=$("reservationScheduleDetails");this.pageFirstCol=$("content").getElement("div.home-col-left");this.itemList=[];this.initDisplay();this.options.autoMove&&this.launchAutoMove();this.detailElement.addEvent("mouseover",function(){this.stopAutoMove()}.bind(this));
this.detailElement.addEvent("mouseout",function(){this.launchAutoMove()}.bind(this))},setImageEvent:function(b,a){b.addEvent("click",function(){this.manualActionMade=true;this.moveTo(a)}.bind(this))},initDisplay:function(){this.refreshDisplay(true)},refreshDisplay:function(b){this.itemList.each(function(a,c){if(c>=this.currentPosition+this.displayedElementNumber)b?(a.container.hide(),this.setItemAtLastPosition(c)):a.container.isHidden()||(this.setItemAtLastPosition(c,true),a.container.fade("out"));
else{var d=c-this.currentPosition;a.container.isHidden()&&c>=this.currentPosition&&(a.container.display(),a.container.fade("in"));var e=this.maxImageHeight-d*(this.maxImageHeight-this.minImageHeight)/this.displayedElementNumber;a.image.morph({height:e,width:e*0.75});a.container.morph({left:(this.sliderWidth-this.leftOffset)*d/this.displayedElementNumber+this.leftOffset,top:(this.sliderHeight-e)/2,zIndex:this.displayedElementNumber-d});a.container.hasClass("first")&&(a.container.removeClass("first"),
a.container.getElement("img").removeEvent("click",clickVersFilm));c==this.currentPosition&&this.setFirstItemData(a)}}.bind(this))},setFirstItemData:function(b){b.container.addClass("first");b.container.getElement("img").addEvent("click",clickVersFilm);this.detailElement.getElement("._filmName").set("html",b.data.name);this.detailElement.getElement("._filmUrl").set("href",b.data.url);var a=b.data.genre;b.data.directors&&(a+=b.data.directors);this.detailElement.getElement("._genre").set("html",a);a=
"";b.data.interdit&&(a+=b.data.interdit);b.data.duration&&b.data.duration!="00H00"&&(a+=(a?" - ":"")+"Durée : "+b.data.duration);this.detailElement.getElement("._public").set("html",a);a=this.detailElement.getElement("._picto");b.data.picto=="nouveaute"?a.display():a.hide();this.reservationCinemaDetails.hide();this.reservationLoader.display();this.currentPosition==0?(Browser.ie7||Browser.ie8?$("coverflowMovePrevious").setStyle("visibility","hidden"):$("coverflowMovePrevious").setStyle("opacity",0.4),
$("coverflowMovePrevious").setStyle("cursor","default")):(Browser.ie7||Browser.ie8?$("coverflowMovePrevious").setStyle("visibility","visible"):$("coverflowMovePrevious").setStyle("opacity",1),$("coverflowMovePrevious").setStyle("cursor","pointer"));this.preloadNext()},preloadNext:function(){},updateProgrammation:function(){if(cineList=this.dataCgp.cinemas)cineList.length?$$(".coverflowCinema").setStyle("display",""):$$(".coverflowCinema").setStyle("display","none"),$$(".nbCinemaForFilmCoverflow").each(function(a){var b=
"";cineList.length>1&&(b="s");a.set("html",cineList.length+" cinéma"+b)});cineList&&cineList.length?($$(".reservationData .elselect-blue").each(function(a){a.setStyle("display","block")}),$$("#filmCoverflow .select_cinema").each(function(a){this._displayListCinema($(a),"select_cinema_select",cineList,this.dataCgp.cineId)}.bind(this)),$$("#filmCoverflow .select_cinema").each(function(a){new elSelect({container:a.get("id")})}),$$("#filmCoverflow .select_cinema_select").each(function(a){a.removeEvents();
a.addEvent("change",function(a){Cgp.setCinemaId(a);Cgp.getHoraires(this)}.bind(this))}.bind(this))):$$(".reservationData .elselect-blue").each(function(a){a.setStyle("display","none")});this.reservationLoader.hide();var b=new Date;b.parse(b.format("%Y-%m-%d"));var a='<p class="text">Séances </p><div class="elselect-blue elselect-date"><div class="btn-blue-left"><div class="btn-blue-right"><div class="btn-blue"><div class="selectDateContainer"><select name="selectDateSelect" class="selectDateSelect">';
for(d in this.dataCgp.horaires){var c=new Date;c.parse(d);c.diff(b)<=0&&(a+='<option value="'+d+'">'+c.format("%A %e %B")+"</option>")}a+="</select></div></div></div></div></div>";first=true;for(var d in this.dataCgp.horaires)if(c=new Date,c.parse(d),c.diff(b)<=0){var e="";first||(e='style="display:none"');first=false;a+='<div id="progDate_'+d+'" '+e+' class="programmationDate">';var e="",g;for(g in this.dataCgp.horaires[d]){var h=this.dataCgp.horaires[d][g];if(g!=e){var i=c.format("%Y-%m-%d")==b.format("%Y-%m-%d")?
"programmationType programmationDateToday":"programmationType";a+='<div class="'+i+'"><p>';a+=h[0].v;h[0].imax&&(a+=" IMAX  ");h[0].d&&(a+=" 3D  ");a+=" : </p>"}a+="<ul>";for(var j=i=0;j<h.length;j++){if(i<4){var f=h[j];a+="<li>";a+=!f.i||f.i=="c"||f.i=="l"?'<span class="coverflow_prog" >'+f.h+"</span>":'<a class="coverflow_prog" href="'+baseUrlProg+f.i+'" title="Réservez la séance de '+f.h+'" rel="nofollow">'+f.h+"</a>";a+="</li>"}i++}i>4&&(a+='<a href="'+this.getFilm().url+'" title="Tous les horaires du film '+
$$("._filmName")[0].get("html")+'">Plus</a>');a+="</ul>";g!=e&&(a+="</div>");e=g}a+="</div>"}this.reservationCinemaDetails.set("html",a);this.setItemReservationEvents()},_displayListCinema:function(b,a,c,d){var e=new Element("select");e.set("name",a);c.each(function(a){var a=Cgp.cinemaConf[a],b=new Element("option");b.set("value",a.id);b.set("html",a.lib);a.id==d&&d!=0&&b.set("selected","selected");b.inject(e,"bottom")});b.empty();e.inject(b,"bottom")},setItemReservationEvents:function(){this.reservationCinemaDetails.display();
var b=this.detailElement.getSize();this.pageFirstCol.morph({"margin-top":Math.max(b.y+10-289,0)});if(b=this.reservationCinemaDetails.getElement(".selectDateContainer"))new elSelect({container:b}),this.reservationCinemaDetails.getElement(".selectDateSelect").addEvent("change",function(a){this.changeProgrammationDate(a)}.bind(this))},changeProgrammationDate:function(b){$$(".selectDateContainer .selectedOption").each(function(a){var d=b.split("-"),d=(new Date(d[0],d[1].toInt()-1,d[2])).format("%A %e %B");
a.set("html",d)});this.reservationCinemaDetails.getElements(".programmationDate").each(function(a){a.hide()});$("progDate_"+b)&&$("progDate_"+b).display();var a=this.detailElement.getSize();this.pageFirstCol.morph({"margin-top":Math.max(a.y+10-289,0)})},moveTo:function(b){this.stopAutoMove();if(b!=this.currentPosition){for(var a=this.currentPosition;a<b;++a)this.removeFirstElement();Cgp.getHoraires(this)}},moveToNext:function(){var b=true;$$(".loader").each(function(a){a.getStyle("display")=="block"&&
(b=false)});if(b){if(this.first)this.first=false;if(this.autoMove&&this.currentPosition>=this.autoMoveLoopNumber)this.currentPosition=0;else if(this.currentPosition>=this.itemList.length-1){this.currentPosition=0;this.reload();return}else this.removeFirstElement();Cgp.getHoraires(this)}},moveToPrevious:function(){this.currentPosition>0&&--this.currentPosition;this.currentPosition<this.itemList.length-this.displayedElementNumber&&this.removeLastElement();Cgp.getHoraires(this)},removeFirstElement:function(){var b=
this.itemList[this.currentPosition];if(!b)return false;b.container.setStyle("zIndex",this.displayedElementNumber+1);b.container.morph({left:(this.sliderWidth-this.leftOffset)*-1/this.displayedElementNumber+this.leftOffset,top:(this.sliderHeight-300)/2});b.image.morph({height:300});b.container.fade("out");++this.currentPosition},removeLastElement:function(){this.setItemAtLastPosition(this.currentPosition+this.displayedElementNumber,true);this.itemList[this.currentPosition+this.displayedElementNumber].container.fade("out")},
stopAutoMove:function(){if(this.autoMove)this.autoMove=false,clearInterval(this.periodicalMovement)},launchAutoMove:function(){if(this.options.autoMove&&!this.manualActionMade&&!this.autoMove)this.autoMove=true,this.periodicalMovement=this.moveToNext.periodical(this.updateTimer,this)},setItemAtLastPosition:function(b,a){var c=this.displayedElementNumber,d=this.itemList[b],e=this.maxImageHeight-c*(this.maxImageHeight-this.minImageHeight)/this.displayedElementNumber;a?(d.image.morph({height:e,width:e*
0.75}),d.container.morph({left:(this.sliderWidth-this.leftOffset)*c/this.displayedElementNumber+this.leftOffset,top:(this.sliderHeight-e)/2,zIndex:0})):(d.image.setStyles({height:e,width:e*0.75}),d.container.setStyles({left:(this.sliderWidth-this.leftOffset)*c/this.displayedElementNumber+this.leftOffset,top:(this.sliderHeight-e)/2,zIndex:0}))},getFilmId:function(){if(flowItem=this.itemList[this.currentPosition])return flowItem.data.id},getNextFilmId:function(){if(flowItem=this.itemList[this.currentPosition+
1])return flowItem.data.id},getFilm:function(){flowItem=this.itemList[this.currentPosition];return flowItem.data},setCinemas:function(b){this.dataCgp.cinemas=b},setCineId:function(b){this.dataCgp.cineId=b},setHoraires:function(b){this.dataCgp.horaires=b},reload:function(){this.itemList=[];this.sliderElement.empty();for(var b=0,a=0;a<this.data.length;){c=this.data[a].id;if(liaisonFilmVille[Cgp.villeId]&&liaisonFilmVille[Cgp.villeId][c]){var c=this.data[a],d=new Element("li"),e=new Element("img",{src:c.image,
alt:c.name});e.inject(d);this.setImageEvent(e,b);d.hide();d.inject(this.sliderElement);this.itemList.push({container:d,image:e,data:c});b++}a++}this.currentPosition=0;var c=this.getFilmId();c?($$(".reservationData .coverflowCinema , .reservationData .elselect-blue, .reservationData #reservationSchedule").each(function(a){a.setStyle("display","")}),Cgp.getHoraires(this)):$$(".reservationData .coverflowCinema , .reservationData .elselect-blue, .reservationData #reservationSchedule").each(function(a){a.setStyle("display",
"none")})},refresh:function(){this.refreshDisplay();this.updateProgrammation()}}),clickVersFilm=function(){var b=homePageCoverflow.currentPosition;if(homePageCoverflow&&homePageCoverflow.itemList)flowItem=homePageCoverflow.itemList[b],window.location.href=flowItem.data.url};

