function Fader(dindex, dtime, dtransition, dnode, dpath, dimages,dlink_tos,dtargets) {
	this.index = dindex;
	this.time = dtime;
	this.transition = dtransition;
	this.node = dnode;
	this.path = dpath;
	this.images = dimages;
	this.image = this.path + this.images[this.index];
        this.link_tos = dlink_tos;
        this.link_to = this.link_tos[this.index];
        this.targets = dtargets;
        this.targ = this.targets[this.index];

}

Fader.prototype.init = function() {
	$jQ(this.node).empty();
        if (this.link_to != "") {
                if (this.targ != "1")
                    {
                        $jQ(this.node).append("<a href=\"" + this.link_to + "\" target=\"_blank\" class=\"above\"> <img src=\"" + this.image + "\" alt=\"\" class=\"above\" /> </a>");
                        $jQ(this.node).append("<a href=\"" + this.link_to + "\" target=\"_blank\" class=\"behind\"> <img src=\"" + this.image + "\" alt=\"\" class=\"behind\" /></a>");                        
                    } else {
                        $jQ(this.node).append("<a href=\"" + this.link_to + "\" target=\"_self\" class=\"above\"> <img src=\"" + this.image + "\" alt=\"\" class=\"above\" /> </a>");
                        $jQ(this.node).append("<a href=\"" + this.link_to + "\" target=\"_self\" class=\"behind\"> <img src=\"" + this.image + "\" alt=\"\" class=\"behind\" /></a>");                    
                    }
                    
        } else {
                $jQ(this.node).append("<a href=\"#\" target=\"_self\" class=\"above\"> ><img src=\"" + this.image + "\" alt=\"\" class=\"above\" /></a>");
                $jQ(this.node).append("<a href=\"#\" target=\"_self\" class=\"behind\"><img src=\"" + this.image + "\" alt=\"\" class=\"behind\" /></a>");                
        }
	this.launch(this, this.time);

}

Fader.prototype.launch = function(obj, ditime) {
	itime = !ditime ? this.time/2 : this.time;
	var l = setTimeout(function(){obj.fade(obj);}, itime);

}

Fader.prototype.fade = function(obj) {
	(this.index == this.images.length - 1) ? this.index = 0 : this.index++;
	(this.transition/this.time > (1/3) || null) ? this.transition = this.time * (1/3) : void(0);
	this.image = this.path + this.images[this.index];
        this.link_to = this.link_tos[this.index];
        this.targ = this.targets[this.index];
	$jQ(this.node + " img.behind").attr("src", this.image);
	$jQ(this.node + " img.above").fadeOut(this.transition);
        if (this.link_to != "") {
            $jQ(this.node + " a.behind").attr("href", this.link_to);
            if (this.targ != "1"){
               $jQ(this.node + " a.behind").attr("target", "_blank");
             }else{
               $jQ(this.node + " a.behind").attr("target", "_self");
             }
            $jQ(this.node + " a.above").fadeOut(this.transition);
        }
        else
        {
            $jQ(this.node + " a.behind").attr("href", "#");
            $jQ(this.node + " a.behind").attr("target", "_self");
            $jQ(this.node + " a.above").fadeOut(this.transition);       
        }        
	var f = setTimeout(function(){obj.clone(obj);}, this.time/2);

}

Fader.prototype.clone = function(obj) {
	$jQ(this.node + " img.above").attr("src", this.image);
	$jQ(this.node + " img.above").show();
        if (this.link_to != "") {
                $jQ(this.node + " a.above").attr("href", this.link_to);
                if (this.targ != "1")
                {
                    $jQ(this.node + " a.above").attr("target", "_blank");
                }else
                {
                    $jQ(this.node + " a.above").attr("target", "_self");
                }                
                
        	$jQ(this.node + " a.above").show();
        }
        else
        {
                $jQ(this.node + " a.above").attr("href", "#");
                $jQ(this.node + " a.above").attr("target", "_self");
        	$jQ(this.node + " a.above").show();            
        }
	obj.launch(obj);

}