var FavouriteDialog = new Class({
    Extends: Dialog,
    options: {
        'parentDiv': '.search-description'
    },
    initialize: function(el, options) {
        this.parent(el, options);
        this.request = new Request({
            method: 'get',
            onComplete: this.requestComplete.bind(this)
        });
    },
    send: function(link, url) {
        this.currentLink = link;
        this.element.getElement(".close-dialog").setStyle('display','none');
        this.element.getElement("p.add").setStyle('display','none');
        this.element.getElement("p.remove").setStyle('display','none');
        if(this.getType() == "add" ) {
            this.element.getElement("h3.add").setStyle('display','');
            this.element.getElement("h3.remove").setStyle('display','none');
        } else {
            this.element.getElement("h3.remove").setStyle('display','');
            this.element.getElement("h3.add").setStyle('display','none');
        }
        this.element.getElement(".request-progress").setStyle('display','');
        this.element.getElement(".request-progress").setStyle('text-align','center');
        this.show();
        this.request.send({url:url});
    },
    requestComplete: function() {
        this.element.getElement(".request-progress").setStyle('display','none');
        this.element.getElement(".close-dialog").setStyle('display','');
        if(this.getType() == "add" ) {
            this.element.getElement("p.add").setStyles({'display':''});
            this.element.getElement("p.remove").setStyle('display','none');
            this.currentLink.getParent(this.options.parentDiv).getElement('a.remove-favs').setStyle('display','');
            this.currentLink.getParent(this.options.parentDiv).getElement('a.favourite-icon').setStyle('display','none');
        } else {
            this.element.getElement("p.add").setStyle('display','none');
            this.element.getElement("p.remove").setStyles({'display':''});
            this.currentLink.getParent(this.options.parentDiv).getElement('a.favourite-icon').setStyle('display','');
            this.currentLink.getParent(this.options.parentDiv).getElement('a.remove-favs').setStyle('display','none');
        }
        
        this.expose(2500);
        
    },
    
    getType: function() {
        return this.currentLink.hasClass('favourite-icon') ? 'add' : 'remove'; 
    }
});


window.addEvent('domready', function() {
    if($(document.body).hasClass('product-detail'))
        var favBox = new FavouriteDialog($$('.favourite-dialog')[0],{'parentDiv': '.fav-block'});
    else
        var favBox = new FavouriteDialog($$('.favourite-dialog')[0]);
    $$('a.favourite-icon, a.remove-favs').addEvent('click',function(ev) {
        ev.stop();
        var url = this.get('href');
        favBox.send(this, url);
        
    }); 

    
});
