JaSlideshowClass=new Class({initialize:function(_1){
this.options=_1;
if(!Cookie.get("JASLIDESHOWPLAY")){
Cookie.set("JASLIDESHOWPLAY",this.options.play,{duration:1});
}
this.play=Cookie.get("JASLIDESHOWPLAY")=="play"?1:0;
if(this.options.images.length<=1){
return;
}
if(this.options.pan!="rand"){
if(isNaN(this.options.pan.toInt())||this.options.pan.toInt()<0||this.options.pan.toInt()>100){
this.options.pan=0;
}
}
if(this.options.zoom!="rand"){
if(isNaN(this.options.zoom.toInt())||this.options.zoom.toInt()<0||this.options.zoom.toInt()>100){
this.options.zoom=0;
}
}
this.elementdiv=$("ja-slideshow-case");
this.bardiv=$("ja-slidebar");
this.image=img=$E("img",this.elementdiv);
this.fx=[];
this.start();
},start:function(){
this.elementdiv.setHTML("");
this.image.setStyles({display:"block",position:"absolute",left:"0",top:"0",zIndex:1});
this.image.injectInside(this.elementdiv);
this.setSize();
this.elementdiv.setStyles({display:"block",position:"relative",width:this.width+"px"});
this.div=new Element("div");
this.div.setStyles({display:"block",height:(this.height+"px"),overflow:"hidden",position:"relative",width:(this.width+"px")});
this.div.injectInside(this.elementdiv);
this.image.injectInside(this.div);
if(this.options.captions){
this.image.setProperty("alt",this.options.captions[0]);
this.image.setProperty("title",this.options.captions[0]);
}
if(this.options.urls){
this.image.url=this.options.urls[0];
this.image.style.cursor="pointer";
this.image.onclick=function(){
location.href=this.url;
};
}
this.imageAF=this.image.clone();
this.imageAF.setStyle("opacity",0);
this.imageAF.injectAfter(this.image);
if(this.options.navigation){
this.navigation();
}
if($type(this.options.captions)=="array"){
this.p=new Element("div");
this.p.className="description";
this.p.setOpacity(0.75);
if(!this.options.captions[0]){
this.p.className="description-hidden";
}
this.p.setHTML(this.options.captions[0]);
this.p.injectInside(this.elementdiv);
}
this.direction="left";
this.current=[1,1];
this.timer=(this.timer)?[0]:[(new Date).getTime()+this.options.duration[1],0];
this.loader=new Image();
this.loader.src=this.options.url+this.options.images[this.current[0]].trim();
if(this.play){
this.preload();
}
},setSize:function(){
obj=this.image.getCoordinates();
this.height=((this.options.height)?this.options.height:obj["height"]);
this.width=((this.options.width)?this.options.width:obj["width"]);
},resize:function(){
var _2=document.getElementById("s5_slideshow");
new_w=this.width;
old_w=this.loader.width;
old_h=this.loader.height;
new_h=(new_w*old_h)/old_w;
new_h=parseInt(new_h);
if(this.options.resize){
img.setStyles({height:new_h+"px",width:new_w+"px"});
}
},preload:function(_3){
if(this.loader.complete&&((new Date).getTime()>this.timer[0])){
img=(this.current[1]%2)?this.imageAF:this.image;
img.setStyles({height:"auto",opacity:0,width:"auto",zIndex:this.current[1]});
img.setProperty("src",this.loader.src);
if(this.options.captions){
img.setProperty("alt",this.options.captions[this.current[0]]);
img.setProperty("title",this.options.captions[this.current[0]]);
}
if(this.options.urls){
img.url=this.options.urls[this.current[0]];
img.style.cursor="pointer";
img.onclick=function(){
location.href=this.url;
};
}else{
img.url="";
img.style.cursor="";
img.onclick=function(){
};
}
this.resize();
if(_3){
img.setStyles({left:"0px",opacity:1,top:"0px"});
if($type(this.options.captions)=="array"){
this.p.setHTML(this.options.captions[this.current[0]]).setStyle("opacity",1);
}
return this.loaded();
}
this.fx=[];
if($type(this.options.captions)=="array"){
fn=function(i){
if(this.options.captions&&this.options.captions[i]){
this.p.className="description";
this.p.setHTML(this.options.captions[i]);
}else{
this.p.setHTML("");
this.p.className="description-hidden";
}
fx=new Fx.Style(this.p,"opacity");
fx.start(0,0.75);
this.fx.push(fx);
}.pass(this.current[0],this);
fx=new Fx.Style(this.p,"opacity",{onComplete:fn});
fx.start(1,0);
this.fx.push(fx);
}
if(this.options.type.test(/push|wipe/)){
img.setStyles({left:"auto",right:"auto"});
img.setStyle(this.direction,this.width+"px");
img.setStyle("opacity",1);
if(this.options.type=="wipe"){
fx=new Fx.Style(img,this.direction,{duration:this.options.duration[0],transition:this.options.transition,onComplete:this.complete.bind(this)});
fx.start(this.width,0);
this.fx.push(fx);
}else{
arr=[img,((this.current[1]%2)?this.image:this.imageAF)];
p0={};
p0[this.direction]=[this.width,0];
p1={};
p1[this.direction]=[0,(this.width*-1)];
if(arr[1].getStyle(this.direction)=="auto"){
x=this.width-arr[1].getStyle("width").toInt();
arr[1].setStyle(this.direction,x+"px");
arr[1].setStyle(((this.direction=="left")?"right":"left"),"auto");
p1[this.direction]=[x,(this.width*-1)];
}
fx=new Fx.Elements(arr,{duration:this.options.duration[0],transition:this.options.transition,onComplete:this.complete.bind(this)});
fx.start({"0":p0,"1":p1});
this.fx.push(fx);
}
}else{
img.setStyles({left:"auto",top:"auto",right:"auto",bottom:"auto"});
arr=["left top","right top","left bottom","right bottom"][this.current[1]%4].split(" ");
if((this.options.type).test(/zoom|combo/)){
arr.each(function(p){
img.setStyle(p,0);
});
}
zoom=((this.options.type).test(/zoom|combo/))?this.zoom():{};
pan=((this.options.type).test(/pan|combo/))?this.pan():{};
fx=new Fx.Style(img,"opacity",{duration:this.options.duration[0]});
fx.start(0,1);
this.fx.push(fx);
fx=new Fx.Styles(img,{duration:(this.options.duration[0]+this.options.duration[1]),transition:Fx.Transitions.linear,onComplete:this.complete.bind(this)});
fx.start(Object.extend(zoom,pan));
this.fx.push(fx);
}
this.loaded();
}else{
this.timeout=this.preload.delay(100,this);
}
},complete:function(){
if(!this.play){
$clear(this.timeout);
}
},loaded:function(){
if(this.ul){
anchors=$ES("a[name]",this.ul);
anchors.each(function(a,i){
if(i==this.current[0]){
a.addClass(this.options.classes[2]);
}else{
a.removeClass(this.options.classes[2]);
}
},this);
}
this.direction="left";
this.current[0]=(this.current[0]==this.options.images.length-1)?0:this.current[0]+1;
this.current[1]++;
this.timer[0]=(new Date).getTime()+this.options.duration[1]+((this.options.type.test(/fade|push|wipe/))?this.options.duration[0]:0);
this.timer[1]=(new Date).getTime()+this.options.duration[0];
this.loader=new Image();
this.loader.src=this.options.url+this.options.images[this.current[0]].trim();
this.preload();
},zoom:function(){
z=(this.options.zoom=="rand")?Math.random()+1:(this.options.zoom.toInt()/100)+1;
eh=Math.ceil(this.loader.height*n);
ew=Math.ceil(this.loader.width*n);
sh=parseInt(eh*z);
sw=parseInt(ew*z);
return {height:[sh,eh],width:[sw,ew]};
},pan:function(){
p=(this.options.pan=="rand")?Math.random():Math.abs((this.options.pan.toInt()/100)-1);
ex=(this.width-img.width);
ey=(this.height-img.height);
sx=parseInt(ex*p);
sy=parseInt(ey*p);
obj={};
if(dw>dh){
obj[arr[1]]=[sy,ey];
}else{
obj[arr[0]]=[sx,ex];
}
return obj;
},navigation:function(){
this.ul=new Element("ul");
if(this.options.navigation.test(/arrows|number/)){
li=new Element("li");
a=new Element("a");
a.addClass(this.options.classes[0]);
a.innerHTML="&laquo;";
a.onclick=function(){
if(this.options.navigation.test(/fast/)||(new Date).getTime()>this.timer[1]){
$clear(this.timeout);
if(this.options.navigation.test(/fast/)){
this.fx.each(function(fx){
fx.time=fx.options.duration=0;
fx.stop(true);
});
}
this.direction="right";
this.current[0]=(this.current[0]<2)?this.options.images.length-(2-this.current[0]):this.current[0]-2;
this.timer=[0];
this.loader=new Image();
this.loader.src=this.options.url+this.options.images[this.current[0]].trim();
this.preload(this.options.navigation.test(/fast/));
}
}.bind(this);
a.injectInside(li);
li.injectInside(this.ul);
}
if(this.options.navigation.test(/arrows\+|thumbnails|number/)){
for(i=0;i<this.options.images.length;i++){
li=new Element("li");
a=new Element("a");
a.setProperty("name",i);
if(this.options.navigation.test(/thumbnails/)){
src=this.options.url+this.options.images[i].trim().replace(this.options.thumbnailre[0],this.options.thumbnailre[1]);
a.setStyle("background-image","url("+src+")");
}
if(this.options.navigation.test(/number/)){
a.innerHTML=i+1;
}
if(i==0){
a.className=this.options.classes[2];
}
a.onclick=function(i){
if(this.options.navigation.test(/fast/)||(new Date).getTime()>this.timer[1]){
$clear(this.timeout);
if(this.options.navigation.test(/fast/)){
this.fx.each(function(fx){
fx.time=fx.options.duration=0;
fx.stop(true);
});
}
this.direction=(i<this.current[0]||this.current[0]==0)?"right":"left";
this.current[0]=i;
this.timer=[0];
this.loader=new Image();
this.loader.src=this.options.url+this.options.images[this.current[0]].trim();
this.preload(this.options.navigation.test(/fast/));
}
}.pass(i,this);
a.injectInside(li);
li.injectInside(this.ul);
}
}
if(this.options.navigation.test(/arrows|number/)){
li=new Element("li");
a=new Element("a");
a.addClass(this.options.classes[1]);
a.innerHTML="&raquo;";
a.onclick=function(){
if(this.options.navigation.test(/fast/)||(new Date).getTime()>this.timer[1]){
$clear(this.timeout);
if(this.options.navigation.test(/fast/)){
this.fx.each(function(fx){
fx.time=fx.options.duration=0;
fx.stop(true);
});
}
this.timer=[0];
this.preload(this.options.navigation.test(/fast/));
}
}.bind(this);
a.injectInside(li);
li.injectInside(this.ul);
}
this.buttonsp();
this.ul.injectInside(this.bardiv);
},buttonsp:function(){
li=new Element("li");
li.addClass("pause");
a=new Element("a");
a.addClass("ps");
a.innerHTML=this.play?"<img src=\""+this.options.siteurl+"/modules/ja_slideshow/img/pause.png\" alt=\"Pause\" title=\"Pause\">":"<img src=\""+this.options.siteurl+"/modules/ja_slideshow/img/play.png\" alt=\"Play\" title=\"Play\">";
a.onclick=function(){
if(this.play){
$clear(this.timeout);
a.innerHTML="<img src=\""+this.options.siteurl+"/modules/ja_slideshow/img/play.png\" alt=\"Play\" title=\"Play\">";
Cookie.set("JASLIDESHOWPLAY","pause",{duration:365});
this.play=0;
}else{
Cookie.set("JASLIDESHOWPLAY","play",{duration:1});
this.play=1;
this.preload(false);
a.innerHTML="<img src=\""+this.options.siteurl+"/modules/ja_slideshow/img/pause.png\" alt=\"Pause\" title=\"Pause\">";
}
}.bind(this);
a.injectInside(li);
li.injectInside(this.ul);
}});

