var hslider = {
	init:function(){
		hslider.duration = 4500;
		hslider.selem=$('slider');
		hslider.effect = new Fx.Scroll(hslider.selem.getElement('div[class^=sphotos]'), {
			wait: false,
			duration: 0,
			offset: {'x': 0, 'y': 0}
				
		});
		hslider.numelem=0;
		hslider.imgobj=new Array();
		hslider.imgfx=new Array();
		hslider.selem.getElement('div[class^=sphotos]').getElements('img').each(function(img){	
			hslider.imgfx[hslider.numelem] = new Fx.Morph(img, {duration: 500, transition: Fx.Transitions.Sine.easeOut});		
			hslider.imgobj[hslider.numelem] = img;
			if(hslider.numelem!=0){
				img.set('opacity',0);
			}
			hslider.numelem+=1;							 
		});	
		hslider.currentelem=0;
		hslider.timer= window.setTimeout('hslider.autogo();', hslider.duration);
	},
	autogo:function(){
		hslider.sgo("next");
	},
	resettim:function(goNext){
		window.clearTimeout(hslider.timer);
		if(goNext==1){
			hslider.timer=window.setTimeout('hslider.autogo();', hslider.duration);
		}
	},
	sgo:function(effect){
		hslider.resettim(1);
		var oldcurrent = hslider.currentelem;
		hslider.imgfx[hslider.currentelem].start({
    		'opacity': 0
		});		
		if(effect=="next"){
			if((hslider.currentelem+1)>hslider.numelem-1){
				hslider.currentelem=0;
			} else {
				hslider.currentelem=(hslider.currentelem+1);
			}
		}
		if(effect=="previous"){
			if((hslider.currentelem-1)==-1){
				hslider.currentelem=hslider.numelem-1;
			} else {
				hslider.currentelem=(hslider.currentelem-1);
			}
		}
		if(effect!="previous" && effect!="next"){
			if(Math.round(effect)>-1 && Math.round(effect)<hslider.numelem){
				hslider.currentelem=Math.round(effect);
			} 
		}
		var x = new Chain();
		var one = function(){hslider.imgfx[oldcurrent].start({
    		'opacity': 0
		})};
		var two = function(){hslider.effect.toElement(hslider.imgobj[hslider.currentelem])};
		var three = function(){hslider.imgfx[hslider.currentelem].start({
    		'opacity': 1
		})};
		x.chain(one);
		x.chain(two);
		x.chain(three);
		x.callChain.delay(0, x);
		x.callChain.delay(500, x);
		x.callChain.delay(500, x);
	}
}
