//ecceFader, Image Rotation Script That Utalises JSON. Copyright (c) 2008 eccemedia ltd, <http://www.eccemedia.com>.
var ecceFader = new Class({
        initialize: function(ID,options){
            this.ID = ID;this.options =options;
			new Element('div', {'styles': {'position': 'absolute','width': $(this.ID).getStyle('width'),'height': $(this.ID).getStyle('height')},'id':'DF1'}).injectInside(this.ID);
			new Element('div', {'styles': {'position': 'absolute','width': $(this.ID).getStyle('width'),'height': $(this.ID).getStyle('height')},'id':'DF2'}).injectInside(this.ID);
			this.LoadData();
		},
        run: function(){
			if (this.options.JSON.length>1){
				var currentclass= this;
				fx = $("DF2").effects({duration: this.options.FadeDuration, transition: Fx.Transitions.Quart.easeOut});
				fx.start({'opacity': 1}).chain(function(){$('DF2').setStyle('z-index',1000);$('DF1').setStyle('z-index',0);this.start.delay(currentclass.options.Delay, this, {'opacity': 0});
				}).chain(function(){
					if(currentclass.options.offset>currentclass.options.end){currentclass.options.offset=0;}else{currentclass.options.offset=currentclass.options.offset+1;}
					$('DF2').setStyle('background-image',"url("+currentclass.options.img+currentclass.options.JSON[currentclass.options.offset].image+")");
					$('DF2').addEvent('click',function(){window.location=currentclass.options.JSON[currentclass.options.offset].link;});
					$('DF2').setProperty('title',currentclass.options.JSON[currentclass.options.offset].desc);
					$('DF2').setStyle('z-index',0);$('DF1').setStyle('z-index',1000);
					this.start.delay(currentclass.options.Delay, this, {'opacity': 0});
				}).chain(function(){$('DF2').setStyle('z-index',1000);$('DF1').setStyle('z-index',0);this.start.delay(currentclass.options.Delay, this, {'opacity': 1});
				}).chain(function(){
					if(currentclass.options.offset>currentclass.options.end){currentclass.options.offset=0;}else{currentclass.options.offset=currentclass.options.offset+1;}
					$('DF1').setStyle('background-image',"url("+currentclass.options.img+currentclass.options.JSON[currentclass.options.offset].image+")");
					$('DF1').addEvent('click',function(){window.location=currentclass.options.JSON[currentclass.options.offset].link;});
					$('DF1').setProperty('title',currentclass.options.JSON[currentclass.options.offset].desc);
					setTimeout(function(){currentclass.run();},currentclass.options.Delay);
				});
			}else{$(this.id).setHTML("<center>Error Loading Data File<center>");}
        },
		LoadData: function(){
			var currentid=this.ID;
			var currentclass= this;
            var request = new Json.Remote(this.options.url, {
				onComplete: function(jsonObj) {currentclass.options.JSON=jsonObj.data;currentclass.options.offset=0;currentclass.options.end=jsonObj.data.length-2;
				$('DF1').setStyle('background-image',"url("+currentclass.options.img+currentclass.options.JSON[0].image+")");
				$('DF2').setStyle('background-image',"url("+currentclass.options.img+currentclass.options.JSON[1].image+")");
				$('DF1').addEvent('click',function(){window.location=currentclass.options.JSON[0].link;});
				$('DF1').setProperty('title',currentclass.options.JSON[0].desc);
				$('DF2').addEvent('click',function(){window.location=currentclass.options.JSON[1].link;});
				$('DF2').setProperty('title',currentclass.options.JSON[1].desc);
				
				currentclass.run();},
				onFailure: function() {$(currentid).setHTML("<center>Error Loading Data File<center>");}
			}).send();

        }
});
window.addEvent('domready',function(){
	$$('a.viewer').each(function(elm){
		elm.addEvent('click',function(e){
			 new Event(e).stop();
			 $(this.rel).src=this.href;
		});
	});
});

