function FourMee() {};

FourMee.prototype.init = function() {    
    this.hideLightboxes();
    this.moveLanguagesLinks();  
    this.moveFooterLinks(); 
    this.quickSearch();
}

/*
 * Move the "fr" & "en" languages links to the "top links" container
 */   
FourMee.prototype.moveLanguagesLinks = function() {
    var headerLinksContainer = $j('.quick-access .links');
    var links = $j('#select-language li');
    $j(headerLinksContainer).append(links);
    $j('#select-language').remove();
}

/* Move the "footer_links" static block's links to the "native" footer links block
 * /!\ Please, ensure that the static block "footer_links" (CMS) has '<ul id="footer_block_links">'
 */   
FourMee.prototype.moveFooterLinks = function() {
    try {
        var footerBlockLinks = $j('#footer_block_links li');
        var footerLinksContainer = $j('.footer .links');
        footerLinksContainer.append(footerBlockLinks);
        $j('#footer_block_links').remove();
        // Redispatch CSS classes
        var footerLinks = $j('.footer .links li');
        footerLinks.removeClass('last');
    }
    catch(e) {
        console.log('Errors with footer links, maybe we need "footer_block_links" ID ?')            
    }
}

/*
 * Catalog navigation generated with drawItem method have a "onmouseover" attribute which reference to an undefined JS function
 * This causes some errors, check "template/catalog/navigation/left-catalog-navigation.phtml"
 */ 
FourMee.prototype.cleanToggleMenuReferences = function() {
    var items = $j('#left-catalog-navigation ul li');
    items.removeAttr('onmouseover');
    items.removeAttr('onmouseout');
}

/*
 * Style the first link which references to "Notre sélection" : add "first" css class
 * Check "template/catalog/navigation/left-catalog-navigation.phtml"
 */ 
FourMee.prototype.styleRootCategoryLink = function() {
    var items = $j('#left-catalog-navigation ul li a');
    var rootLink = $j(items[0]);
    rootLink.addClass('first');
}

/*
 * Hide any lightboxes which maybe visible
 */ 
FourMee.prototype.hideLightboxes = function() {
    var lightboxes = ['form-login-quick', 'search_mini_form', 'form-register-quick'];
    $j.each(lightboxes, function(index, value) { 
        $j('#' + value).click(function(event) {
            event.stopPropagation()
        });
    })
    $j(document).click(function() {
        $j('#form-register-quick').hide();
        $j('#form-login-quick').hide();
        $j('#search_mini_form').hide();
    });
}

/*
 * Quick search
 */
FourMee.prototype.quickSearch = function () {
    var form = $j('#search_mini_form');
    $j('#header_search_link').click(function() {
        $j('#header_search_link a').css('background-url', SKIN_URL + 'image/header_search_background.png');
        var position = $j('#header_search_link').position();
        form.css('top', position.top);
        form.css('left', position.left - 5);
        $j('#form-register-quick').hide();
        $j('#form-login-quick').hide();
        form.show();
        return false;
    }); 
}

FourMee.prototype.repaintProductView = function() {    
    var desc = $j('#product-description');
    desc.detach();
    desc.addClass('product-options-view');
    desc.insertAfter('.product-img-box');            
    var options = $j('#product-options-wrapper').detach();
    options.insertAfter('.product-shop .price-box');            
    $j('.product-options-bottom').remove();
    options.attr('id','product-options-wrapper');
    $j('.product-view').addClass('product-view-options');
}

FourMee.prototype.slideshow = function() {
    var tempSlides = SLIDES;
    var slideshowCtn = $j('#homepage-slideshow a');
    var first = true;
    var loadSlides = function() {
        var bkpSlide = tempSlides[0];
        var img =  $j('#homepage-slideshow img.active');
        if (!first) {
            img.fadeOut('slow', function() {
                $j(this).removeClass('active');
                $j(this).next().addClass('active');
                slideshowCtn.append('<img src="' + tempSlides[0] + '"/>');
                //$j(this).hide();
                tempSlides.shift();
                tempSlides.push(bkpSlide);
            });
        }
        setTimeout(loadSlides, 5000);
        first = false;
    }
    loadSlides();
}

/*
 * Quick registration logic (lightbox, submit)
 */
 
function QuickRegister() {}
QuickRegister.prototype.init = function(mode) {
    var scope = this;
    var form = $j('#form-register-quick');
    $j('#header_register_link a').attr('href', '#');
    $j('#header_register_link').click(function() {
        form.removeClass('centered');
        form.css('margin','0');
        var position = $j('#header_register_link').offset();
        form.css('top', position.top + 30);
        form.css('left', position.left - 215);
        $j('#form-login-quick').hide();
        $j('#search_mini_form').hide();
        // Close button
        scope.bindCloseButton();
        form.show();
        return false;
    });
    
    // Overlay
    $j('#form-register-quick #overlay').css('opacity', '0.7');
}
    
QuickRegister.prototype.bindCloseButton = function() {            
    // Close button
    var button = $j('#form-register-quick-close');
    button.unbind();
    button.bind('click', function() {
        $j('#form-register-quick').hide();
    });
}
    
QuickRegister.prototype.centered = function() {
    var form = $j('#form-register-quick');
    form.addClass('centered');
    form.lightbox_me({
        centered: true,
        closeSelector: '#form-register-quick-close'
    });
}
    
QuickRegister.prototype.submit = function() {
    var errors = $j('#form-register-quick .validation-failed');
    
    var areConditionsOfUseAccepted = function() {
        if (!$j('#accept-cgv').is(':checked')) {
            $j('#label-accept-cgv').addClass('error');
            return false;
        }
        else {
            return true;
        }
    }
    
    if (errors.length === 0 && areConditionsOfUseAccepted()) {
        var overlay = $j('#form-register-quick #overlay-ctn');
        overlay.show();
        var form = $j('#form-register-quick');
        var formData = form.serialize();
        $j.ajax({
            type:'post',
            url: BASE_URL + '4mee-customer/index/create/',
            data: formData,
            dataType: "json",
            success: function(data) {
                if (data.success) {
                    window.location.reload();
                }
                else {                            
                    overlay.hide();
                }
            }
        });
    }
    return false; 
}

function QuickLogin() {}
QuickLogin.prototype.init = function(mode) {
    var scope = this;
    var form = $j('#form-login-quick');
    $j('#header_login_link a').attr('href', '#');
    $j('#header_login_link').click(function() {
        form.removeClass('centered');
        form.css('margin','0');
        var position = $j('#header_login_link').offset();
        form.css('top', position.top + 30);
        form.css('left', position.left - 150);
        $j('#form-register-quick').hide();
        $j('#search_mini_form').hide();
        // Close button
        scope.bindCloseButton();
        form.show();
        return false;
    });    
    // Overlay
    $j('#form-login-quick #overlay').css('opacity', '0.7');
}
        
QuickLogin.prototype.bindCloseButton = function() {            
    // Close button
    var button = $j('#form-login-quick-close');
    button.unbind();
    button.bind('click', function() {
        $j('#form-login-quick').hide();
    });
}
        
QuickLogin.prototype.centered = function(redirectTo) {
    var form = $j('#form-login-quick');    
    if (typeof redirectTo != 'undefined') {
        var redirectToInput = $j('#loginRedirectTo');
        redirectToInput.val(redirectTo);
    }
    form.addClass('centered');
    form.lightbox_me({
        centered: true,
        closeSelector: '#form-login-quick-close'
    });
}

QuickLogin.prototype.submit = function() {
    var errors = $j('#form-login-quick .validation-failed');
    var bkpTip = $j('#form-login-quick #tip').text();
    if (errors.length === 0) {
        var overlay = $j('#form-login-quick #overlay-ctn');
        overlay.show();
        var form = $j('#form-login-quick');
        var formData = form.serialize();
        $j.ajax({
            type:'post',
            url: BASE_URL + '4mee-customer/index/login/',
            data: formData,
            dataType: "json",
            success: function(data) {
                if (data.success) {
                    $j('#form-login-quick #tip').text(bkpTip); 
                    $j('#form-login-quick #tip').removeClass("error");
                    var redirectTo = $j('#loginRedirectTo').val();
                    if (redirectTo == '') {
                        window.location.reload();
                    }
                    else {
                        window.location.href = redirectTo;
                    }
                }
                else {            
                    $j('#form-login-quick #tip').text(data.errors); 
                    $j('#form-login-quick #tip').addClass("error");          
                    overlay.hide();
                }
            }
        });
    }
    return false; 
}

/*
 * Quick newsletter suscribing logic (lightbox, submit)
 */

function QuickNewsletter() {}
QuickNewsletter.prototype.init = function(mode) {
    var scope = this;
    var form = $j('#form-subscribe-quick');
    $j('#footer_newsletter_link a').attr('href', '#');
    $j('#footer_newsletter_link').click(function() {
        // Close button
        scope.bindCloseButton();
        form.addClass('centered');
        form.lightbox_me({
            centered: true,
            closeSelector: '#form-subscribe-quick-close'
        });
        return false;
    });

    // Overlay
    $j('#form-subscribe-quick #overlay').css('opacity', '0.7');
}

QuickNewsletter.prototype.bindCloseButton = function() {
    // Close button
    var button = $j('#form-subscribe-quick-close');
    button.unbind();
    button.bind('click', function() {
        $j('#form-subscribe-quick').hide();
    });
}

QuickNewsletter.prototype.submit = function() {
    var errors = $j('#form-subscribe-quick .validation-failed');
    if (errors.length === 0) {
        var overlay = $j('#form-subscribe-quick #overlay-ctn');
        overlay.show();
        var form = $j('#form-subscribe-quick');
        var formData = form.serialize();
        $j.ajax({
            type:'post',
            url: BASE_URL + '4mee-newsletter/subscriber/new/',
            data: formData,
            dataType: "json",
            success: function(data) {
                if (data.success) {
                    window.location.reload();
                }
                else {
                    overlay.hide();
                }
            }
        });
    }
    return false;
}
