(function($) {

$.widget("ui.amedossier", {
    _init: function() {
       
        var self = this, o = this.options;
        self.pos = -1;
        self.triggered = o.triggered;
        this.divs = $("div", this.element).remove();
        this.links = new Array();       
        this.imagesContainer = $('<div />').addClass("ame-amedossier-container-images");
        this.element.append(this.imagesContainer);
       
        
        var linksContainer = $('<div />').addClass("ame-amedossier-container-links");
        linksContainer.append($("> h3", $('#tabs')).remove());
        
        this.ulLinks = $('<ul />').addClass("ame-amedossier-links");
        linksContainer.append(this.ulLinks);
        this.element.append(linksContainer);
       
        this.x_dossier = $('<div />').addClass("x-dossier").append('X');
        this.imagesContainer.append(self.x_dossier);
       
     	jQuery('.ame-amedossier-container-links > h3').show();

        this.divs.each(function(i) {
            self.links[i] = $('a',this).addClass("ame-amedossier-link")[0];
            $('a',this).attr('id','dossierdx_'+i);
            self.links[i].num = i;
                       
            self.ulLinks.append($('<li />').append(self.links[i]));
           
            self.links[i].image = $('<div id="dossiersx_'+i+'" />').addClass("ame-amedossier-image");
            self.links[i].image.append($('<a href="'+jQuery(self.links[i]).attr('href')+'"/>').append($('img',this)[0]));
            self.imagesContainer.append(self.links[i].image);
            self.links[i].image.css('z-index', self.divs.length - i - 1);
       
            self.links[i].view = function(e) {
                if (self.pos != this.num) {
                    // clear the old selected element if exist
                    if (self.pos >= 0 && self.pos < self.links.length) {
                        $(self.links[self.pos]).removeClass('ame-amedossier-link-selected');
                        $(self.links[self.pos]).css('color','black');
                        $(self.links[self.pos].image).css('display','none');
                        $(self.links[self.pos].image).removeClass('ame-amedossier-image-selected');
                        if (self.pos+1 < self.links.length) $(self.links[self.pos+1].image).css('display','none');
                    }
                   
                    // select the new element
                    self.pos = this.num;
                   
                    $(this).addClass('ame-amedossier-link-selected');
                    $(this).css('color','white');
                    $(this.image).css('display','block');
                    $(this.image).addClass('ame-amedossier-image-selected');
                    $(this.image).css('top', ('-25px'));
                    if (self.pos+1 < self.links.length) {
                        $(self.links[self.pos+1].image).css('display','block');
                        $(self.links[self.pos+1].image).css('top', ('-335px'));
                    }
                    if($(this).is('.timer-adv') && $('#tabs-2').css("display") != 'none') {
                        $(this).sleep(7000, function() {document.location = "?tab=0"});
                    }
                    self._trigger("page_view");
                    self.triggered = false;
                }
                else self.triggered=true;               
                return self.triggered;
            }
           
            $(self.links[i].image).click(function(e) {
                var iddx= jQuery(this).attr('id');
                var idsx=iddx.substring(10,iddx.length);
                var tagsx = jQuery('#dossierdx_'+idsx);
                var ret= tagsx.trigger('click');
                return self.triggered;
            });
           
           
            $(self.links[i]).click(function(e) {
            	$(self.links[self.pos]).stop();
            	return this.view(e);
            });
        });
       
        $(this.x_dossier).click(function(e) {
            self.next();
            return false;
        });
       
        if (self.links.length > 0) self.links[o.value].view();
       
    },
   
    value: function(newValue) {
        if (arguments.length == 0) return this.pos;
        
        this.pos=newValue;
        if (this.pos < 0) this.pos = 0;
        if (this.pos > this.links.length - 1) this.pos = this.links.length - 1;
        this.links[this.pos].view();
        return this;
    },
   
    next: function() {
    	$(this.links[this.pos]).stop();
        if (this.pos == this.links.length - 1) {
            this.links[0].view();
        }
        else {
            this.links[this.pos+1].view();
        }
        return this;
    }
   
});

$.extend($.ui.amedossier, {
    getter: "value",
    version: "@VERSION",
    triggered: false,
    defaults: {
        value: 0
    }
});

jQuery.fn.sleep = function sleep(time, callback) {
    this.animate({opacity:1.0}, time, callback);
}
})(jQuery);
