var CS_Carrousel=new Class({initialize:function(c,a,b){this.root_node=!c?document.getElement("body"):$(c);this.active_item_node=null;this.image_class="cs_carrousel_image";this.text_class="cs_carrousel_text";this.button_class="cs_carrousel_button";this.items_wrapper_class="cs_carrousel_items_wrapper";this.items_prev_class="cs_carrousel_items_prev";this.items_next_class="cs_carrousel_items_next";this.items_class="cs_carrousel_items";this.item_label_class="cs_carrousel_item_label";this.item_image_class="cs_carrousel_item_image";this.item_text_class="cs_carrousel_item_text";this.item_active_class="cs_active";this.item_active_prev_class="cs_active_prev";this.effect_type=!a?1:a.toInt();this.effect_interval=1000;this.time_interval=5000;this.prev_next=!b?0:b.toInt();this.carrousel_play=null},start:function(){if(this.root_node){this.initActiveItem();this.setEvents();this.play()}},initActiveItem:function(){var b=this.root_node.getElement("."+this.items_class);if(b){var c=b.getElement("."+this.item_active_class);if(c){this.active_item_node=c}else{var e=b.getElements("li");var a=e.length;if(a>0){var c=e[0].getElement("a");if(c){c.set("class",this.item_active_class);this.active_item_node=c;var d=c.getParent("li");if(d){d.set("class",this.item_active_class)}}}}}},setEvents:function(){var f=this;var d=this.root_node.getElement("."+this.items_class);if(d){var e=d.getElements("li");var c=e.length;if(c>0){e.each(function(g){var h=g.getElement("a");if(h){h.removeEvents();h.addEvents({click:function(){f.activateItem(this);return false},focus:function(){this.blur()}})}});if(this.prev_next&&c>1){var d=this.root_node.getElement("."+this.items_wrapper_class);if(d){var a=d.getElement("."+this.items_prev_class+" a");var b=d.getElement("."+this.items_next_class+" a");if(a){a.removeEvents();a.addEvents({click:function(){f.activateItem(f.getNeighborItem("prev"));return false},focus:function(){this.blur()}})}if(b){b.removeEvents();b.addEvents({click:function(){f.activateItem(f.getNeighborItem("next"));return false},focus:function(){this.blur()}})}}}}}},activateItem:function(a){var p=this;if(!a){a=this.getNeighborItem("next")}if(a){var t=a.getElement("."+this.item_text_class);var k=a.getElement("."+this.item_image_class);if(t&&k){var l=t.innerHTML;var f=k.getElement("img");var s=null;if(f){s=f.get("src")}var d=this.root_node.getElement("."+this.image_class);var j=this.root_node.getElement("."+this.text_class);var c=this.root_node.getElement("."+this.button_class);if(d&&j&&c){var r=d.getElement("img");if(r){var g=a.getParent("."+this.items_class);if(g){var q=g.getElement("a."+this.item_active_class);if(q&&q!=a){q.removeClass(this.item_active_class);var e=g.getElement("li."+this.item_active_class);if(e){e.removeClass(this.item_active_class);var h=g.getElement("li."+this.item_active_prev_class);if(h){h.removeClass(this.item_active_prev_class)}}}}a.addClass(this.item_active_class);this.active_item_node=a;var b=a.getParent("li");if(b){b.addClass(this.item_active_class);var u=b.getPrevious();if(u){u.addClass(this.item_active_prev_class)}}switch(this.effect_type){case 1:r.set("src",s);break;case 2:this.stop();var m=new Element("img",{src:s,opacity:0});m.inject(d);var o=new Fx.Morph(m,{duration:this.effect_interval,transition:Fx.Transitions.Quad.easeOut});o.start({opacity:1}).chain(function(){r.dispose();p.play()});break}j.innerHTML=l;var n=a.get("href");var i=c.getElement("a");if(n&&i){i.set("href",n);if(n=="#"){i.set("class","passive");i.set("onclick","return false;")}else{i.erase("class");i.erase("onclick")}}}}}}},play:function(){var a=this;clearInterval(this.carrousel_play);this.carrousel_play=setInterval(function(){a.activateItem()},this.time_interval)},stop:function(){clearInterval(this.carrousel_play)},getNeighborItem:function(b){if(b=="prev"||b=="next"){var a;var d=this.root_node.getElement("."+this.items_class);if(d){var f=d.getElements("li");var c=f.length;if(c>0){if(!this.active_item_node){a=f[0].getElement("a")}else{if(b=="prev"){var e=this.active_item_node.getParent().getPrevious();if(e){a=e.getElement("a")}if(!a){a=f[c-1].getElement("a")}}else{if(b=="next"){var e=this.active_item_node.getParent().getNext();if(e){a=e.getElement("a")}if(!a){a=f[0].getElement("a")}}}}}}return a}}});
