$(function () {
    /* Usefull js class for styling */
    $('body').addClass('js');
});

$(function () {
    /* Fix browser focus issues */
    if (jQuery.browser.msie) {
        $('a').click(function() {
            this.blur();
        });

        // Adds a class focus to input text when focused
        function focusfix(selector, className) {
            $(selector).focus(function() {
                $(this).addClass(className);
            });

            // Removes class when focus is lost
            $(selector).blur(function() {
                $(this).removeClass(className);
            });
        }

        focusfix('input', 'focus');
        focusfix('textarea', 'focus');
    }

    // Liens externes
    $('A[rel="external"]').click( function() {
        window.open($(this).attr('href'));
        return false;
    });
});

$(function () {
    /* Handle common questions */
    $('.box-questions dl dt a').click(function() {
        dtRequested = $(this).parent();
        ddRequested = $(dtRequested).next();
        dl          = $(dtRequested).parent();

        if (dtRequested.hasClass('active')) {
            // element is unfold, close it
            $(dtRequested).removeClass('active');
            $(ddRequested).hide().removeClass('active');
        } else {
            // close all
            $('dd', dl).hide();
            $(dl).children().removeClass('active');

            // unfold requested
            $(dtRequested).addClass('active');
            $(ddRequested).addClass('active');
            $(ddRequested).toggle();
        }

        return false;
    });
});

function fancyBoxInit() {
    $('.video').each(function (idx, elt) {
        var tag = $(elt);
        classes = tag.attr('class').split(' ');

        $.each(classes, function (k, className) {
            if (className.match('^format-[0-9]+-[0-9]+$')) {
                dimensions = className.split('-').slice(1);
                width  = parseInt(dimensions[0], 10);
                height = parseInt(dimensions[1], 10) + 20;

                tag.fancybox({
                    'type': 'iframe',
                    'hideOnContentClick': true,
                    'speedIn': 0,
                    'speedOut': 0, 
                    'overlayShow': true,
                    'overlayOpacity': 0.5,
                    'width': width,
                    'height': height,
                    'padding': 0,
                    'transitionIn': false,
                    'transitionOut': false,
                    'scrolling': 'no'
                });
            }
        });
    });

    $('.fancyframe').each(function (idx, elt) {
        var tag = $(elt);
        classes = tag.attr('class').split(' ');

        $.each(classes, function (k, className) {
            if (className.match('^format-[0-9]+-[0-9]+$')) {
                var scrolling = (tag.hasClass('scrolling')) ? 'auto' : 'no'
                dimensions = className.split('-').slice(1);
                width  = parseInt(dimensions[0], 10);
                height = parseInt(dimensions[1], 10);

                tag.fancybox({
                    'type': 'iframe',
                    'hideOnContentClick': true,
                    'speedIn': 0,
                    'speedOut': 0,
                    'overlayShow': true,
                    'overlayOpacity': 0.5,
                    'width': width,
                    'height': height,
                    'padding': 0,
                    'transitionIn': false,
                    'transitionOut': false,
                    'scrolling': scrolling
                });
            }
        });
    });

    $('.fancyimage').each(function (idx, elt) {
        $(elt).fancybox({
            'hideOnContentClick': true,
            'speedIn': 0,
            'speedOut': 0, 
            'overlayShow': true,
            'overlayOpacity': 0.5,
            'padding': 0,
            'transitionIn': false,
            'transitionOut': false,
            'scrolling': 'no'
        });
    });
}

function accordion() {
    $('.accordion h4').each(function() {
        if ($(this).hasClass('active')) {
            $(this).parent().children().show();
            $(this).show();
        } else {
            $(this).parent().children('div').hide();
        }
    });

    $('.accordion h4').click(function() {
        if ($(this).hasClass('active')) {
            accordionCollapse($(this));
        } else {
            accordionExpand($(this));
        }
        return false;
    });
}

function accordionExpand (accordion) {
    if (!accordion.hasClass('active')) {
        accordion.addClass('active');
        addExpandedAccordion(accordion);
    }
    accordion.parent().children().show();
    accordion.show();
}

function accordionCollapse (accordion) {
    accordion.removeClass('active');
    removeExpandedAccordion(accordion);
    accordion.parent().children('div').hide();
}

function accordionExpandAll () {
    $('.accordion h4').each(function() {
        accordionExpand($(this));
    });
}

function accordionCollapseAll () {
    $('.accordion h4').each(function() {
        accordionCollapse($(this));
    });
}

function removeExpandedAccordion(accordion) {
    var expandedValue = null;

    if ($('#expandedAccordions').length > 0) {
        expandedValue = $('#expandedAccordions').attr('value');
    }

    if (null === expandedValue) {
        return;
    }

    var aExpanded = expandedValue.split('|');
    var newExpanded = new Array;

    for (var i in aExpanded) {
        if (aExpanded[i] != getAccordionName(accordion)) {
            newExpanded.push(aExpanded[i]);
        }
    }
    $('#expandedAccordions').attr('value', newExpanded.join('|'));
}

function addExpandedAccordion(accordion) {
    var expandedValue = null;

    if ($('#expandedAccordions').length > 0) {
        expandedValue = $('#expandedAccordions').attr('value');
    }

    if (null === expandedValue) {
        return;
    }

    if ('' == expandedValue) {
        $('#expandedAccordions').attr('value', getAccordionName(accordion));
    } else {
        var aExpanded = $('#expandedAccordions').attr('value').split('|');
        aExpanded.push(getAccordionName(accordion));
        $('#expandedAccordions').attr('value', aExpanded.join('|'));
    }
}

function getAccordionName (accordion) {
    var divId = accordion.parent().attr('id');
    var aId = divId.split('-');
    return aId[1];
}

function manageAccorditionDetailsProduct() {
    $('table.details tr td a.launch').click(function() {
        var lnk = $(this);

        if (!lnk.attr('id')) {
            lnk = $('td:first a', $(this).parents('tr'));
        }

        var elem =  $('tr#launch-' + lnk.attr('id'));

        if(elem.length > 0) {
            if (elem.hasClass('active')) {
                lnk.removeClass('active');
                elem.removeClass('active');
                elem.hide();
            } else {
                lnk.addClass('active');
                elem.addClass('active');
                elem.show();
            }
        }
        return false;
    });
}
function placeholder() {
    function supports_input_placeholder() {
      var i = document.createElement('input');
      return 'placeholder' in i;
    }

    if (!supports_input_placeholder()) {
        function populate() {
            var input = jQuery(this);
            if (input.val() == "" && this != document.activeElement) {
                input.addClass("placeholder");
                input.val(input.attr("placeholder"));
                input.attr('autocomplete', 'off');
            }
        };

        function depopulate() {
            var input = jQuery(this);
            if (input.hasClass("placeholder")) {
                input.val("");
                input.removeClass("placeholder");
            }
        };

        var inputs = jQuery("input[placeholder], textarea[placeholder]");

        inputs.each(populate);
        inputs.focus(depopulate);
        inputs.blur(populate);

        $(window).unload(function() {
            inputs.each(depopulate);
        });

        jQuery("form").submit(function() {
            jQuery("input[placeholder]", this).each(depopulate);
        });
    }
}

$(function() {
    if ($('.infos').length > 0 && typeof $('.infos').qtip !== 'undefined') {
        $('.infos').qtip({
            style: {
                classes: 'ui-tooltip-shadow ui-tooltip-rounded ui-tooltip-tipsy',
                tip: {
                    width:  12,
                    height: 10
                }
            },
            position: {
                adjust: {
                    x: 5,
                    y: 5
                }
            }
        });
    }
});

$(function() {
	/* Common */
    fancyBoxInit();

	/* placeholder */
    placeholder();

	/* Backend */
    accordion();

	/* ?? */
    manageAccorditionDetailsProduct();
});
