var isIE6 = false;
var notificationUrl;
(function() {
    
    var windowWidth, windowHeight;
    var animScroll = false, scrollComputed = false;
    var timerPortraits, activePortrait, nbPortraits;
    
    var switchNavigation = function(elt) {
        $('#subNavigation dd').removeClass('on');
        elt.parent().next().addClass('on');
    };
    
    // mask for popins
    box.ui('mask').create({
        id: 'popins',
        html: '<div id="popinMask"></div>',
        insertStyles: {opacity: 0, width: 'viewport:content-box', height: 'document:content-box'},
        insertAnimStyles: {opacity: 0.5},
        insertAnimDuration: 200,
        removeAnimStyles: {opacity: 0},
        removeAnimDuration: 150,
        resizeStyles: {width: 'viewport:content-box', height: 'document:content-box'}
    });
    
    // loader for popins
    box.ui('loader').create({
        id: 'popins',
        html: '<div id="popinLoader">' + l10n.loading + '</div>',
        insertStyles: {opacity: 0, top: 'viewport:middle', left: 'viewport:middle'},
        insertAnimStyles: {opacity: 1},
        insertAnimDuration: 200,
        removeAnimStyles: {opacity: 0},
        removeAnimDuration: 150
    });
    
    // create a new popin object
    box.ui('popin').create({
        id: 'basic',
        loader: 'popins',
        mask: 'popins',
        insertStyles: {top: 'viewport:before', left: 'viewport:middle', 'min-left': 0},
        insertAnimStyles: {top: 'viewport:middle', 'min-top': 0},
        insertAnimDuration: 600,
        removeAnimStyles: {top: 'viewport:before'},
        removeAnimDuration: 500,
        openClassName: 'openPopin',
        closeClassName: 'closePopin'
    });
    
    // mask for expand with carousel
    box.ui('mask').create({
        id: 'maskexpand',
        html: '<div id="expandMask"></div>',
        insertStyles: {opacity: 0, width: 'viewport:content-box', height: 'document:content-box'},
        insertTarget: '#wrapper',
        insertAnimStyles: {opacity: 0.5},
        insertAnimDuration: 200,
        removeAnimStyles: {opacity: 0},
        removeAnimDuration: 150,
        resizeStyles: {width: 'viewport:content-box', height: 'document:content-box'}
    });
    
    // mask for video player
    box.ui('mask').create({
        id: 'maskplayer',
        html: '<div id="playerMask"></div>',
        insertStyles: {opacity: 0, width: 'viewport:content-box', height: 'document:content-box'},
        insertAnimStyles: {opacity: 0.5},
        insertAnimDuration: 200,
        removeAnimStyles: {opacity: 0},
        removeAnimDuration: 150,
        resizeStyles: {width: 'viewport:content-box', height: 'document:content-box'}
    });
    
    var displayErrorPopin = function() {
        createPopin();
        box.ui('popin.confirm').error(
            '<div id="popinConfirmation" class="popinWrapper">' +
                '<a href="#" class="closeConfirmPopin windowClose"><img src="/img/picto-close.png" alt="'+l10n.errors.popin.close+'" /></a>' +
                '<div class="contentPopin">'+
                    '<p>' + l10n.errors.popin.message + '</p>' +
                '</div>'+
                '<a href="#" class="closeConfirmPopin btn">'+l10n.errors.popin.close+'</a>'+
            '</div>'
        );
    };
    
    // manage form errors
    var getErrorTarget = function(field) {
        return field.getLabel();
    };
    
    var addFormError = function(e) {
        box.dom('#' + e.source.id + 'Error')
            .html('<p>' + e.source.msg + '</p>')
            .attr('tabindex', '-1')
            .focus();
    };
    
    var addFieldError = function(e) {
        var error = box.dom('#' + e.source.name + 'Error');
        if(error.length) {
            error.html(e.msg);
        } else {
            getErrorTarget(e.source).append('<em id="' + e.source.name + 'Error" class="error">' + e.msg + '</em>');
        }
        error = null;
    };
    
    var removeFieldError = function(e) {
        window.setTimeout(function() {
            box.dom('#' + e.source.name + 'Error').remove();
        }, 200);
    };
    
    box.bind({
        'error.field': addFieldError,
        'valid.field': removeFieldError,
        
        'submit.form': function(e, domEvt) {
            if(e.valid === false) {
                addFormError(e);
            }
        }
    });
    
    var expandToggler = {
        originalWidth: 63,
        openedWidth: 893,
        
        init: function() {
            var that = this;
            $('#expand #openbtn').click(function(e) {
                that.togg();
                e.preventDefault();
            });
        },
        
        togg:function() {
            var expand = $('#expand'), toWidth;
            if(expand.hasClass('on')) {
                box.ui('mask.maskexpand').hide();
                toWidth = this.originalWidth;
            } else {
                box.ui('mask.maskexpand').show();
                toWidth = this.openedWidth;
            }
            expand.animate(
                {width: toWidth + 'px'},
                600,
                function() {$(this).toggleClass('on');}
            );
        }
    };
    
    var loadAjaxContent = function(obj) {
        $.ajax({
            type:'GET',
            url: $(obj).attr('href'),
            dataType:'html',
            beforeSend: ajaxLoader(''),
            success: function(retour) {
                handleResponse(retour);
            }
        });
    };
    
    var handleResponse = function(data) {
        $('#content').html(data);
    };

    var paginate = function(obj) {
        var domainBase = '/';
        obj.parents('ul').find('li').removeClass('on');
        obj.parent('li').addClass('on');
        var pageOnClass = obj.attr('href').split(domainBase)[1];
        var oLis = $('#allMediaList li');
        $(oLis).removeClass('display');
        $('.'+pageOnClass).addClass('display');
    };
    
    var setActivePortrait = function(elm) {
        var target = '#' + elm.find('a').attr('href').split('#')[1], oldTarget;
        if(activePortrait && activePortrait.length) {
            activePortrait.removeClass('on');
            oldTarget = '#' + activePortrait.find('a').attr('href').split('#')[1];
        }
        if(oldTarget) {
            $(oldTarget).removeClass('on');
        }
        var img = $(target).find('img.focusImg').hide();
        activePortrait = elm.addClass('on');
        $(target).addClass('on');
        img.fadeIn(400);
    };
    
    var chooseNextPortrait = function() {
        if(activePortrait && activePortrait.length) {
            var c = parseInt(activePortrait.getBoxDatas('n'), 10), elm;
            setActivePortrait(portraits.eq(c < nbPortraits ? c : 0));
        }
    };
    
    var manageLikeDislike = function(e) {
        var ref = $(this);
        if($(this).find('.openPopin').size()) {return;}
        e.preventDefault();
        
        $.ajax({
            type: 'GET',
            url: ref.find('a').attr('href'),
            dataType: 'html',
            success: function(retour) {
                var dl = document.createElement('dl');
                dl.innerHTML = retour;
                var dt = dl.getElementsByTagName('dt')[0];
                var dd = dl.getElementsByTagName('dd')[0];
                if(dt && dd) {
                    ref[0].parentNode.insertBefore(dt, ref[0]);
                    ref[0].parentNode.insertBefore(dd, ref[0]);
                }
                
                ref.parent().find('dt.likeDislike').click(manageLikeDislike);
                
                ref.next().remove();
                ref.remove();
            }
        });
        return false;
    };
    
    var initScrollDimensions = false;
    var manageScrollDimensions = function(obj) {
        if(!initScrollDimensions) {
            var ui = obj || box.ui('scroll.pageWeave');
            var items = $('div.screen', ui.wrapper);
            var pageTempSize = 0, i = items.length;
            var associatedChidren = $('#associatedContents > div');
            var j = associatedChidren.length;
            var childrenTempSize = 0;
            
            if($('.blogs').size()) {
                var columnBlogBoxNb = $('.blogBox').length;
                var blogBoxElm = $('.blogBox')[0];
                var blogBoxWidth =  $(blogBoxElm).getSize('margin-box').width;
                pageTempSize = $('#blogInteract').getSize('margin-box').width + (columnBlogBoxNb*blogBoxWidth) + 50;
                //$('.screen').css('width',pageTempSize+'px');
            } else if($('.pushListColumn').size()) {
                var pushListColumnNb = $('.pushListColumn').length;
                var pushListColumnElm = $('.pushListColumn')[0];
				if(pushListColumnNb < 2){
					var pushListColumnWidth = 600;
				} else{
					var pushListColumnWidth =  $(pushListColumnElm).getSize('margin-box').width;
				}
                $('#core').css('width','auto');
                pageTempSize = $('#listIntro').getSize('margin-box').width + (pushListColumnNb*pushListColumnWidth) + 70;  		
				
            } else if ($('.clients').size()){
                var clientCount = $('#clientList li').length;
                var clientTempSize = Math.ceil(clientCount/4) * 113 + 50;
                if (clientTempSize > 660){
                    pageTempSize = clientTempSize;
                    $('#core #content').css('width',clientTempSize-20+'px');
                } else {
                    pageTempSize = 660;
                }
            } else if($('#core #content .results').size()) {
                var resultsItems = $('#content .results');
                var k = resultsItems.length;
                while(k--) {
                    pageTempSize += resultsItems.eq(k).getWidth('margin-box');
                }
                pageTempSize = pageTempSize + 50;
            } else {
                while(i--) {
                    pageTempSize += items.eq(i).getWidth('margin-box');
                }
                
                if(document.getElementById('associatedContents')) {    
                    while(j--){
                        childrenTempSize += associatedChidren.eq(j).getWidth('margin-box');
                    }
                    pageTempSize = $('#core').getWidth('margin-box') + childrenTempSize + 50;
                }
            }
            
            // reset width of scrollable items
            ui.wrapper.width(pageTempSize);
            initScrollDimensions = true;
            
            // config viewport meta for iPhone and iPad
            $('#viewportMeta').attr('content','width='+pageTempSize+', height=device-height');
            $('#viewportMetaIpad').attr('content','width='+pageTempSize+', height=768');
        }
        
        // reset width of gutter and scrollbar
        $('.gutter').eq(0).width(windowWidth-60);
        $('.scrollbar').eq(0).width(windowWidth);
    };
    
    var computeViewportAndScroll = function() {
        manageScrollDimensions();
        box.ui('scroll.pageWeave').compute();
    };
    
    var setWrapperPosTop = function(computeVS) {
        var wrapper = $('#wrapper'), wrapperHeight = wrapper.height(), diff = windowHeight - wrapperHeight;
        wrapper.css('width', windowWidth + 'px');
        if(diff >= -90 && diff <= 0) {
            wrapper.css('top', diff + 'px');
            if(computeVS !== false) {
                computeViewportAndScroll();
            }
        } else if(diff < -90) {
            wrapper.css('top', '-90px');
            if(computeVS !== false) {
                computeViewportAndScroll();
            }
        } else {
            wrapper.css('top', '0');
        }
        if(isIE6){
            $('#expand').css('zoom','1');
        }
    };
    
    var switchOnClient = function(){
        var newSrcImg = $(this).find('img').attr('src').replace('-off','-on') ;
        $(this).find('img').attr('src',newSrcImg);
    };
    var switchOffClient = function(){
        var newSrcImg = $(this).find('img').attr('src').replace('-on','-off') ;
        $(this).find('img').attr('src',newSrcImg);
    };
    
    // ToolTips clients
    var tempToolTipInner;
    var showToolTips = function() {
        var toolTipInner = box.dom(this).children().attr('alt');
        tempToolTipInner = toolTipInner;
        var toolTipHtml = '<div class="toolTipWrapper"><div class="toolTipLeft"></div><div class="toolTip">';
        toolTipHtml += toolTipInner;
        toolTipHtml += '</div><div class="toolTipRight"></div></div>';
        box.dom(toolTipHtml).insertAfter(box.dom(this));
        var toolTipSize = box.dom('.toolTip').getSize('margin-box').width + 8;
        box.dom('.toolTipWrapper').css({
            width: toolTipSize+'px',
            left: 70 - (toolTipSize/2) +'px'
        });
        box.dom(this).children().attr('alt','');
    };
    
    var hideToolTips = function() {
        box.dom('.toolTipWrapper').remove();
        var toolTipInner = box.dom(this).children().attr('alt');
        box.dom(this).children().attr('alt',tempToolTipInner);
    };
    
    var handlePopinResponse = function(response,popinDatas,formName){
        $('.popinContent').html(response);
        setTimeout(
            function(){
                //return; // à enlever !!!!
                window.location.reload();
            },
            2000
        );
    };
    
    var validatePopinForms = function(popinDatas){
        var popinFormId = $(popinDatas).find('form').attr('id');
        var urlToPost = $(popinDatas).find('form').attr('action');
        var formName = $(popinDatas).find('form').attr('name');
        
        box.ui('form').create({
            element: '#'+popinFormId
        });
        
        if(popinFormId == 'postCommentForm'){ 
            box.ui('form.postCommentForm').mustValidate(function(form) {
                form.field('commentArea').mustValidate(function(field) {
                    if(field.isEmpty()) {
                        return l10n.errors.required.generic;
                    } 
                });
            });
        }
        else if(popinFormId == 'stfPopinForm'){ 
            box.ui('form.stfPopinForm').mustValidate(function(form) {
                form.field('emailfrom').mustValidate(function(field) {
                     if(field.isEmpty()) {
                        return l10n.errors.required.generic;
                    } else if(!field.isMatching('email')) {
                        return l10n.errors.invalid.generic;
                    } 
                });
                
                form.field('firstnamefrom').mustValidate(function(field) {
                    if(field.isEmpty()) {
                        return l10n.errors.required.generic;
                    }
                });
                
                form.field('loginEntryPopin').mustValidate(function(field) {
                     if(field.isEmpty()) {
                        return l10n.errors.required.generic;
                    } else if(!field.isMatching('email')) {
                        return l10n.errors.invalid.generic;
                    } 
                });
                
                form.field('firstnameto').mustValidate(function(field) {
                    if(field.isEmpty()) {
                        return l10n.errors.required.generic;
                    }
                });
            });
        }
        else if(popinFormId == 'forgotPwdPopinForm'){ 
            box.ui('form.forgotPwdPopinForm').mustValidate(function(form) {
                form.field('emailPwdPopin').mustValidate(function(field) {
                     if(field.isEmpty()) {
                        return l10n.errors.required.generic;
                    } else if(!field.isMatching('email')) {
                        return l10n.errors.invalid.generic;
                    } 
                });
            });
        } else if(popinFormId == 'contactForm'){ 
            box.ui('form.contactForm').mustValidate(function(form) {
                form.field('lastnameEntry').mustValidate(function(field) {
                    if(field.isEmpty()) {
                        return l10n.errors.required.lastname;
                    } 
                });
                form.field('firstname').mustValidate(function(field) {
                    if(field.isEmpty()) {
                        return l10n.errors.required.firstname;
                    } 
                });
                form.field('email').mustValidate(function(field) {
                     if(field.isEmpty()) {
                        return l10n.errors.required.email;
                    } else if(!field.isMatching('email')) {
                        return l10n.errors.invalid.email;
                    } 
                });
                form.field('subject').mustValidate(function(field) {
                    if(field.isEmpty()) {
                        return l10n.errors.required.subject;
                    } 
                });
                form.field('message').mustValidate(function(field) {
                    if(field.isEmpty()) {
                        return l10n.errors.required.message;
                    } 
                });
            });
        }
        
        box.bind({
            'error.field': addFieldError,
            'valid.field': removeFieldError,
            'submit.form': function(e, domEvent) {
                if(e.valid) {
                    if(domEvent) {
                        domEvent.preventDefault();
                    }
                    $.ajax({
                        type:'POST',
                        url: urlToPost,
                        dataType:'html',
                        data: $('.popinContent').find('form').serialize(),
                        success: function(response){
                            handlePopinResponse(response,popinDatas,formName);
                        }
                    });
                } else {
                    addFormError(e);
                }
            }
        });
    };
    
    var isPwdExpanded,expand;
    var expandPwd = function(arg){
        var oldpasswordLoginDefault = $('#oldpasswordLogin').attr('defaultValue');
        var passwordLoginDefault = $('#passwordLogin').attr('defaultValue');
        var passwordLoginConfirmDefault = $('#passwordLoginConfirm').attr('defaultValue');
        $(arg).toggleClass('on');
        $(arg).parent().next().toggleClass('on');
        if(isPwdExpanded){
            $('#passChange').val('0');
            isPwdExpanded = false;
            $('#oldpasswordLogin').val(oldpasswordLoginDefault);
            $('#passwordLogin').val(passwordLoginDefault);
            $('#passwordLoginConfirm').val(passwordLoginConfirmDefault);
            return false;
        }
        $('#passChange').val('1');
        isPwdExpanded = true;
        $('#oldpasswordLogin').val('');
        $('#passwordLogin').val('');
        $('#passwordLoginConfirm').val('');     
        return false;        
    };
    
    var rollOverPortraitBtn = function(obj,state){
        if (state == 'on'){
            $(obj).parent().css('backgroundPosition','0 -122px');
        } else {
            $(obj).parent().css('backgroundPosition','0 0');
        }
    };
    
    box.dom(document).ready(function() {
        
        if($('.associateName').size() || document.getElementById('associateName')) {
            $('.associateName .videoLink, #associateName .videoLink').hover(function(){rollOverPortraitBtn($(this),'on');},function(){rollOverPortraitBtn($(this),'off');});
        }
        
        windowWidth = $(window).width();
        windowHeight = $(window).height();
        
        $(window).resize(function() {
            windowWidth = $(window).width();
            windowHeight = $(window).height();
            setWrapperPosTop(false);
            computeViewportAndScroll();
            box.ui('scroll.pageWeave').moveContentTo(0);
        });
        
        // subNavigation menu expand subMenu    
        $('#subNavigation ul:first > li').mouseover(function(e){
            $(this).addClass('on');
        });
        $('#subNavigation ul:first > li').mouseout(function(e){
            $(this).removeClass('on');
        });
        
        // popin notification opens when notification
        if(notificationUrl){
            box.ui('popin.basic').open({url:notificationUrl,id:'notification'});
        }
        
        // clear fields on focus
        box.dom('#header').clearTextFields();
        box.dom('textarea').clearTextFields();
        
        // mouseOVer Clients
        if(document.getElementById('clientList')) {
            $('#clientList a').hover(switchOnClient,switchOffClient);
            $('#clientList a').hover(showToolTips,hideToolTips);
        }
        
        if(document.getElementById('loginForm')) {
            box.ui('form').create({
                element: '#loginForm'
            }).mustValidate(function(form) {
                form.field('loginEntry').mustValidate(function(field) {
                    if(field.isEmpty()) {
                        return l10n.errors.required.generic;
                    } else if(!field.isMatching('email')) {
                        return l10n.errors.invalid.generic;
                    }
                });
                
                form.field('password').mustValidate(function(field) {
                    if(field.isEmpty()) {
                        return l10n.errors.required.generic;
                    } else if(field.getValue().length < 6) {
                        return l10n.errors.invalid.password;
                    }
                });
                
                return l10n.errors.login;
            });
        }
        
        if(document.getElementById('associateSelectorForm')) {
            box.ui('scroll').configure({
                id: 'associateSelector',
                fauxOptionsScrollbarOffset: 1,
                fauxOptionsMaxHeight: 100,
                bar: '<a href="#" class="{$barCls}"><span class="start"></span><span class="end"></span></a>'
            });
            box.ui('form').create({
                id: 'associateSelector',
                element: '#associateSelectorForm'
            }).addReplacement();
        }
        
        if(document.getElementById('categorySelectorForm')) {
            box.ui('form').create({
                id: 'categorySelector',
                element: '#categorySelectorForm'
            }).addReplacement();
        }
        
        if(document.getElementById('clientSelectorForm')) {
            box.ui('form').create({
                id: 'clientSelector',
                element: '#clientSelectorForm'
            }).addReplacement();
        }
        
        if(document.getElementById('announceSelectorForm')) {
            box.ui('form').create({
                id: 'announceSelector',
                element: '#announceSelectorForm'
            }).addReplacement();
        }
        
        // faux scroll    
        box.ui('scroll').configure({
            id: 'pageWeave',
            bar: '<a href="#" class="{$barCls}"><span class="start"></span><span class="end"></span></a>',
            btnNext: '<a class="next"></a>',
            btnPrev: '<a class="prev"></a>'
        });
        
        box.bind({
            'beforefirstcompute.scroll.pageWeave': function(e) {
                manageScrollDimensions(e.source);
            },
            'computesuccess.scroll.pageWeave': function(e){
                if(!scrollComputed) {
                    $('#tabsTOCAssociates a').click(function() {
                        setActivePortrait($(this.parentNode));
                        window.clearInterval(timerPortraits);
                        timerPortraits = window.setInterval(chooseNextPortrait, 5000);
                        return false;
                    });
                    
                    portraits = $('#tabsTOCAssociates li');
                    nbPortraits = portraits.length;
                    activePortrait = portraits.filter('.on');
                    timerPortraits = window.setInterval(chooseNextPortrait, 5000);
                    
                    $('#navigationBox li .ext').click(function() {
                        $('#navigationBox li a').removeClass('on');
                        $(this).addClass('on');
                        if(!animScroll) {
                            animScroll = true;
                            
                            var elt = $(this).attr('href').split('#')[1];
                            var posElt = box.dom('#' + elt).getX();
                            var actualPosScroll = e.source.getWrapperOffset();
                            var initOffset = 287;
                            var newPosContent = -(posElt - actualPosScroll - initOffset);
                            var newPosScroll = Math.round(Math.abs(newPosContent) / e.source.size.elementDiff * e.source.size.scrollDiff);
                            var duration = Math.round(Math.abs((actualPosScroll - newPosContent) * 0.5));
                            
                            e.source.wrapper.animate({left: newPosContent}, duration, function() {animScroll = false;});
                            e.source.bar.animate({left: newPosScroll}, duration);
                        }
                        
                        return false;
                    });
                    
                    $('dt.likeDislike').click(manageLikeDislike);
                }
                
                scrollComputed = true;
            },
            'addtodom.popin.basic': function(e) {
                box.ui('form').create({
                    element: '#loginPopinForm'
                });
                box.dom("#popin form").clearTextFields();
                
                var popinDatas = box.ui('popin.basic').html.datas;
                if($(popinDatas).find('#flashContent').length) {
                    // récupère les valeurs des variables contenus dans la popin flash;
                    
                    var flashVarImg = flashImage;
                    var flashVarVideoId = flashVideoId;
                    var flashVarTitle = flashTitle;
                    var flashVarBody = flashBody;  
               
                    // écrit le flash
                    var flashvars = {
                      configXML: "/flash/xml/config.xml",
                      image: flashVarImg,
                      autoPlay: 1,
                      videoWidth: 837,
                      videoHeight: 470,
                      videoId: flashVarVideoId,
                      title: flashVarTitle,
                      body: flashVarBody
                    };
                    var params = {
                      wmode: "transparent",
                      allowFullScreen: "true"
                    };
                    swfobject.embedSWF("/flash/swf/player.swf", "flashContent", "838", "525", "10.0.0", "/flash/swf/expressInstall.swf", flashvars, params);
                            
                }
            },
            'open.popin.basic': function(e){
                var popinDatas = box.ui('popin.basic').html.datas;
                if($(popinDatas).find('form').size()){
                    validatePopinForms(popinDatas);
                }
                /*
                if($(popinDatas).find('#accountMiscPopin').size()) {
                    
                }*/
            },
            'submit.form.loginPopinForm': function (e, domEvent) {
                // on adopte une soumission classique pour l'instant (reload page)
                if (domEvent) {
                    domEvent.preventDefault();
                    var popinDatas = box.ui('popin.basic').html.datas;    
                    
                    $.ajax({
                        type: "POST",
                        url: $(popinDatas).find("form").attr("action"),
                        dataType: "json",
                        data: $("#popin form").serialize(),
                        success: handleResponse
                    });
                    
                    return false;
                }
            },
            'htmlready.popin.basic':function(){
                var popinDatas = box.ui('popin.basic').html.datas;
                if($(popinDatas).find('#accountMiscPopin').size()){
                    $(popinDatas).find('#accountMiscPopin a').live('click',function(e){
                        e.preventDefault();
                        box.ui('popin.basic').open({url:'/component/weaver/?view=reset'});
                        return false;    
                    });
                }
            },
            'change.field.select.associateSelector': function(){
                window.location.href = box.ui('form.associateSelectorForm').field('associateSelector').getValue();
            },
            'change.field.select.categorySelector': function(){
                window.location.href = box.ui('form.categorySelectorForm').field('categorySelector').getValue();
            },
            'change.field.select.clientSelector': function(){
                window.location.href = box.ui('form.clientSelectorForm').field('clientSelector').getValue();
            },
			'change.field.select.announceSelector': function(){
                window.location.href = box.ui('form.announceSelectorForm').field('announceSelector').getValue();
            },
            'open.field.select.associateSelector': function(e) {
                if (!window.ie6) {
                    var posFauxOptionsTop = box.dom('#fauxOptions').getY();
                    var posFauxOptionsHeight = box.dom('#fauxOptions').getSize('border-box').height;
                    var posFauxOptionsLeft = box.dom('#fauxOptions').getX();
                    
                    if (e.reverse === false) {
                        box.dom('body').append('<div id="fauxOptionsTop"></div>');
                        box.dom('body').append('<div id="fauxOptionsBottom"></div>');
                        
                        box.dom('#fauxOptionsTop').css({
                            left: posFauxOptionsLeft+'px',
                            top: posFauxOptionsTop + -2 +'px'
                        });
                        //box.dom('#fauxOptions').css({marginTop:'3px'});
                        box.dom('#fauxOptionsBottom').css({
                            left: posFauxOptionsLeft+'px',
                            top: posFauxOptionsTop + posFauxOptionsHeight +'px'
                        });
                    } else {
                        box.dom('body').append('<div id="fauxOptionsTop"></div>');
                        box.dom('#fauxOptions').css({marginTop:'1px'});
                        box.dom('#fauxOptionsTop').css({
                            left: posFauxOptionsLeft+'px',
                            top: posFauxOptionsTop  +'px'
                        });
                    }
                } else {
                    if (e.reverse === false) {
                        box.dom('#fauxOptions').css({marginTop:'-5px'});
                    } else {
                        box.dom('#fauxOptions').css({marginTop:'0px'});
                    }
                }
            },
            'open.field.select.clientSelector': function(e) {
                if (!window.ie6) {
                    var posFauxOptionsTop = box.dom('#fauxOptions').getY();
                    var posFauxOptionsHeight = box.dom('#fauxOptions').getSize('border-box').height;
                    var posFauxOptionsLeft = box.dom('#fauxOptions').getX();
                    
                    if (e.reverse === false) {
                        box.dom('body').append('<div id="fauxOptionsTop"></div>');
                        box.dom('body').append('<div id="fauxOptionsBottom"></div>');
                        
                        box.dom('#fauxOptionsTop').css({
                            left: posFauxOptionsLeft+'px',
                            top: posFauxOptionsTop + -2 +'px'
                        });
                        box.dom('#fauxOptionsBottom').css({
                            left: posFauxOptionsLeft+'px',
                            top: posFauxOptionsTop + posFauxOptionsHeight +'px'
                        });
                    } else {
                        box.dom('body').append('<div id="fauxOptionsTop"></div>');
                        box.dom('#fauxOptions').css({marginTop:'1px'});
                        box.dom('#fauxOptionsTop').css({
                            left: posFauxOptionsLeft+'px',
                            top: posFauxOptionsTop  +'px'
                        });
                    }
                } else {
                    if (e.reverse === false) {
                        box.dom('#fauxOptions').css({marginTop:'-5px'});
                    } else {
                        box.dom('#fauxOptions').css({marginTop:'0px'});
                    }
                }
            },
			'open.field.select.announceSelector': function(e) {
                if (!window.ie6) {
                    var posFauxOptionsTop = box.dom('#fauxOptions').getY();
                    var posFauxOptionsHeight = box.dom('#fauxOptions').getSize('border-box').height;
                    var posFauxOptionsLeft = box.dom('#fauxOptions').getX();
                    
                    if (e.reverse === false) {
                        box.dom('body').append('<div id="fauxOptionsTop"></div>');
                        box.dom('body').append('<div id="fauxOptionsBottom"></div>');
                        
                        box.dom('#fauxOptionsTop').css({
                            left: posFauxOptionsLeft+'px',
                            top: posFauxOptionsTop + -2 +'px'
                        });
                        box.dom('#fauxOptionsBottom').css({
                            left: posFauxOptionsLeft+'px',
                            top: posFauxOptionsTop + posFauxOptionsHeight +'px'
                        });
                    } else {
                        box.dom('body').append('<div id="fauxOptionsTop"></div>');
                        box.dom('#fauxOptions').css({marginTop:'1px'});
                        box.dom('#fauxOptionsTop').css({
                            left: posFauxOptionsLeft+'px',
                            top: posFauxOptionsTop  +'px'
                        });
                    }
                } else {
                    if (e.reverse === false) {
                        box.dom('#fauxOptions').css({marginTop:'-5px'});
                    } else {
                        box.dom('#fauxOptions').css({marginTop:'0px'});
                    }
                }
            },
            'close.field.select.clientSelector': function(e) { 
                box.dom('#fauxOptionsBottom').remove();
                box.dom('#fauxOptionsTop').remove();
            },
            'close.field.select.associateSelector': function(e) { 
                box.dom('#fauxOptionsBottom').remove();
                box.dom('#fauxOptionsTop').remove();
            },
            'close.field.select.announceSelector': function(e) { 
                box.dom('#fauxOptionsBottom').remove();
                box.dom('#fauxOptionsTop').remove();
            },
        });
        
        box.ui('scroll').create({
            id: 'pageWeave',
            element: '#page',
            horizontal: true,
            buttons: true,
            bar: true
        });
        
        if($('#subNavigation dt').size()){
            $('#subNavigation dt a').click(function(){
                switchNavigation($(this));
            });
        }
        
        // pagination sur la page mediatheque
        if(document.getElementById('allMediaList')) {
            $('#pagination a').click(function() {
                paginate($(this));
                return false;
            });
        }
        
        //pagination sur la page résultats de medias
        if(document.getElementById('mediaResults')) {
            $('#pagination a').live('click',function(e) {
                var that = $(this);
                var container = $(this).parents('.results').eq(0);
                e.preventDefault();
                $.ajax({
                    type:'GET',
                    url: $(this).attr('href'),
                    dataType:'html',
                    beforeSend: function(){
                        that.parents('#pagination').prev().before('<div class="preloading"><img src="/img/ajax-loader.gif" alt="loading" /></div>');
                        that.parents('#pagination').prev().remove();
                        that.parents('#pagination').remove();
                    },
                    success: function(retour) {
                        setTimeout(
                            function() {
                                $(retour).appendTo(container);
                                $('.preloading').remove();
                            },
                            1000
                        );
                        //handleResponse(retour);
                    }
                });
                paginate($(this));
                return false;
            });
        }
        
        // tabs My account 
        if(document.getElementById('myOwnAccount')) {
            box.ui('tabs').create({
                element: '#tabsTOC'
            });
        }
        /*
        if(document.getElementById('boardControls')){
            $('.userActions a').click(
                function(){
                    window.location.reload();
                    window.location.href = $(this).attr('href');
                }
            )
        }*/
        
        // toolTips
        if($('.tooltip').length) {
            box.ui('plugin.tooltip').create({
                reactArea : '.mediaList',
                element: '.tooltip'
            });
        }
        
        setWrapperPosTop();
        
        box.ui('carousel').create({
            element: '#carousel',
            horizontal: true,
            display: 4,
            duration: 600,
            circular: true
        });
        
        expandToggler.init();
        
        if(document.getElementById('expand') && $('body.home').length){
            if(document.cookie.indexOf('firstVisit') == -1){
                document.cookie = 'firstVisit=true';
                expandToggler.togg();
                setTimeout(function(){expandToggler.togg();}, 2000);
            }
        }
        
        var handleResponse = function(data) {
            if(data.success === true) {
                //return;
                window.location.reload();
            } else {
                $('#loginPopinFormError').html(l10n.errors.login);
            }
        };
        
        $('#passwordChangeLink').click(function(e){
            expandPwd($(this));
            return false;
        });
        
        if($('.imageViewer').size()) {
            $('.imageViewer').click(function(e){
                var imgGET = $(this).attr('href');
                var popinFile = '/popin-viewer.php';
                //var popinFile = '/popin-image.html'; // static => to comment on PROD !!!
                box.ui('popin.basic').open({url: popinFile+'?imgUrl='+imgGET});
                return false;
            });
        }
        
    });
    
})();

// fermeture de la popin flash
var closePopinFlash = function(){
    box.ui('popin.basic').close();
};