/*

SOMMAIRE

- Color Picker (initialisation)
- Déclaration / vérification des variables globales
- Color Picker (couleur de fond du site)
- Gestion du focus dans la boite de recherche
- ReMooz : ajout de la fonction de zoom sur les images
- Améloration de l'affichage des liens externes
- Outils des articles (imprimer, partager...)
- Google Analytics

*/


////////////////////////////////////////////////
//////////////////// OnLoad ////////////////////
////////////////////////////////////////////////



/* COLOR PICKER : INIT */
// Gadget permettant de changer la couleur de fond du site

if (Browser.Engine.trident && Browser.Engine.version < 5) {
    // do nothing
} else {

    var RedBgColor = Cookie.read('RedBgColor');
    var GreenBgColor = Cookie.read('GreenBgColor');
    var BlueBgColor = Cookie.read('BlueBgColor');

    if (!RedBgColor || !GreenBgColor || !BlueBgColor) {
        RedBgColor = '254';
        GreenBgColor = '138';
        BlueBgColor = '3'
    }

    $$('html').setStyle('background', [RedBgColor, GreenBgColor, BlueBgColor].rgbToHex());

}

////////////////////////////////////////////////
/////////////////// DomReady ///////////////////
////////////////////////////////////////////////

window.addEvent('domready', function() {


    /* VARIABLES GLOBALES */
    // URL du site, URL de la page courante

    var cap_siteURL = document.location.protocol + '//' + document.location.hostname;
    var cap_pageURL = document.location;
    if (typeof cap_CMS_SiteName == "undefined") cap_CMS_SiteName = "";
    if (typeof cap_CMS_DocumentName == "undefined") cap_CMS_DocumentName = "";
    if (typeof cap_CMS_Environment == "undefined") cap_CMS_Environment = "";
    if (typeof cap_SiteRootUrl == "undefined") cap_SiteRootUrl = "";
    if (typeof cap_CMS_AliasPath == "undefined") {
        cap_CMS_AliasPath = "";
    } else {
        if (cap_CMS_AliasPath.slice(0, 1) == "/") {
            cap_CMS_AliasPath = cap_CMS_AliasPath.slice(1);
        }
        cap_CMS_AliasPath = cap_CMS_AliasPath.toLowerCase()
    }

    var cap_globalVarAlert = {
        view: function() {
            alert(
                'cap_siteURL = ' + cap_siteURL + '\n' +
                'cap_pageURL = ' + cap_pageURL + '\n' +
                'cap_CMS_SiteName = ' + cap_CMS_SiteName + '\n' +
                'cap_CMS_DocumentName = ' + cap_CMS_DocumentName + '\n' +
                'cap_CMS_Environment = ' + cap_CMS_Environment + '\n' +
                'cap_SiteRootUrl = ' + cap_SiteRootUrl + '\n' +
                'cap_CMS_AliasPath = ' + cap_CMS_AliasPath
            );
        }
    }
    //cap_globalVarAlert.view();
    

    /* COLOR PICKER */
    // Gadget permettant de changer la couleur de fond du site
    // Certaines variables doivent être initialisées dans le 'onLoad'

    if ((Browser.Engine.trident && Browser.Engine.version < 5) || document.location.protocol == 'https:') {
        $('colorPicker').dispose();
    } else {

        $('colorPicker').setStyle('display', 'block');

        var cap_colorPicker = new MooRainbow('colorPicker', {
            id: 'changeColor',
            imgPath: cap_SiteRootUrl + '/CMSTemplates/philou_site/images/',
            startColor: [RedBgColor, GreenBgColor, BlueBgColor],
            onChange: function(color) {
                $$('body').setStyle('background', color.hex);
                $$('.moor-hexInput').value = color.hex;
            },
            onComplete: function(color) {
                $$('html').setStyle('background', color.hex);
                $$('.moor-hexInput').value = color.hex;
                Cookie.write('RedBgColor', color.rgb[0], { duration: 90 });
                Cookie.write('GreenBgColor', color.rgb[1], { duration: 90 });
                Cookie.write('BlueBgColor', color.rgb[2], { duration: 90 });
            }
        });

        $('colorPicker_resetButton').addEvent('click', function() {
            $$('html').setStyle('background', '#FE8A03');
            $$('.moor-hexInput').value = '#FE8A03';
            Cookie.write('RedBgColor', 254, { duration: 90 });
            Cookie.write('GreenBgColor', 138, { duration: 90 });
            Cookie.write('BlueBgColor', 3, { duration: 90 });
            MooRainbow.hide();
        });

    }


    /* GESTION DU FOCUS DANS LA BOITE DE RECHERCHE */
    // ajoute une indication 'Rechercher' dans la boite de recherche quand celle-çi est vide

    var cap_searchField = { // Mise à jour : 12/01/2009

        init: function(element, cssClass) {
            if (element && cssClass) cap_searchField.inprove(element, cssClass);
        },

        inprove: function(element, cssClass) {
            // si le champ est vide au chargement de la page, on ajoute l'indication
            if (!element.value) {
                element.addClass(cssClass);
            }

            // on affiche ou pas l'indication en fonction de l'action de l'utilisateur, et du contenu du champ
            element.addEvents({
                'focus': function() {
                    element.removeClass(cssClass);
                },
                'blur': function() {
                    if (!element.value) {
                        element.addClass(cssClass);
                    }
                }
            });
        }
    }

    cap_searchField.init($$('#search input')[0], 'inputBlur');



    /* LIENS EXTERNES */
    // améliore l'ergonomie et la visibilité des liens pointant vers l'extérieur du site

    var cap_externalLinks = { // Mise à jour : 15/01/2009

        init: function(container, noInproveCssClass) {
            if (container && noInproveCssClass) cap_externalLinks.improve(container, noInproveCssClass);
        },

        improve: function(container, noInproveCssClass) {
            // on récupere les liens de la page (dans le div #container)
            container.each(function(item, index) {

                // on teste si le domaine du site se trouve pas dans le href, et que l'adresse commence bien par http:// ou https://
                if (!item.href.contains(cap_siteURL) && (item.href.match("^http://") || item.href.match("^https://"))) {

                    // si le lien n'a pas de propriété 'target', on en ajoute un (les liens s'ouvriront dans une nouvelle fenêtre)
                    if (!item.target) {
                        item.setProperty('target', '_blank');
                    }

                    // si le lien n'a pas de propriété 'title', on en ajoute un
                    if (!item.title && !item.hastClass == 'remooz-element' && !item.hastClass == 'imgZoom') {
                        item.setProperty('title', 'lien vers : ' + item.href);
                    }

                    // si le liens n'est pas sur une image et qu'il na pas de CssClass interdisant le traitement, on ajoute la classe CSS
                    if (!item.getElement("img") && !item.hasClass(noInproveCssClass)) {
                        // on ajoute la classe CSS
                        item.addClass('externalLink');
                    }
                }
            })
        }
    };

    cap_externalLinks.init($$('#container a'), 'noExternalLink');



    /***  ReMooz  ***/
    // Assigns ReMooz behavior to all anchors with the .remooz-element class

    var cap_imgZoom = { // Mise à jour : 26/02/2009

        // first: fck-editeur ne permet d'ajouter facilement un Cssclass que sur l'image et non le lien, ce script règle ce problème.
        init: function(el) {
            if (el) {
                var parentsTag = el.getParent();

                //alert(parentsTag.length);

                parentsTag.each(function(item) {
                    item.addClass('remooz-element');
                    //item.setProperty('title', item.getChildren[0].getProperty('alt'));
                    //alert(item.getChildren.length);
                    //alert(item.getChildren[0].getProperty('alt'));
                });
            }
        },

        attach: function(el) {
            if (el) {
                ReMooz.assign(el, {
                    shadow: 'onOpenEnd', // fx is faster because shadow appears after resize animation
                    resizeFactor: 0.95, // resize to maximum 80% of screen size
                    cutOut: false, // don't hide the original
                    opacityResize: 0.4, // opaque resize
                    dragging: false, // disable dragging
                    centered: true, // resize to center of the screen, not relative to the source element
                    origin: 'img'
                });
            }
        }
    }

    cap_imgZoom.init($$('#center_content .middle a .imgZoom'));
    cap_imgZoom.attach('#center_content .middle a.remooz-element');


    /* ARTICLES TOOLS BOX */
    // Attache les fonctionalités correspondantes à la barre d'outils dans un article (imprimer, partager...)

    var cap_attachArticlesTools = {

        print: function(el) {
            if (el && el != '') el.addEvent('click', function() { window.print() });
        },

        addThis: function(el) {
            if (el && el != '') {
                // initialisation des paramètres
                addthis_pub = 'philou';
                addthis_logo = cap_SiteRootUrl + '/CMSTemplates/philou_site/images/logo.jpg';
                addthis_logo_background = 'FFFFFF';
                addthis_logo_color = '249bed';
                addthis_brand = cap_CMS_SiteName;
                addthis_options = 'favorites, email, digg, delicious, myspace, facebook, linkedin, buzz, google, live, more';
                addthis_offset_top = 6;
                addthis_offset_left = -175;

                // on attache le lien + la CssClass 'noInproveCssClass' de la fonction 'cap_externalLinks'
                el.setProperty('href', 'http://www.addthis.com/bookmark.php');
                el.addClass('noExternalLink');

                // on charge le .js requis
                Asset.javascript('http://s7.addthis.com/js/152/addthis_widget.js');

                // on attache les événements
                el.addEvents({
                    'click': function() {
                        return addthis_sendto();
                    },
                    'mouseover': function() {
                        return addthis_open(this, '', '[URL]', '[TITLE]');
                    },
                    'mouseout': function() {
                        addthis_close();
                    }
                });

            }
        }
    }

    cap_attachArticlesTools.print($$('.toolBox .print'))
    cap_attachArticlesTools.addThis($$('.toolBox .share'))



    /*  GOOGLE ANALYTICS  */
    // Injection du script Google Analytics

    var cap_googleAnalytics = {

        add: function(firstTracker, secondTracker) {

            var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
            new Asset.javascript(gaJsHost + "google-analytics.com/ga.js", {
                onload: function() {
                    pageTracker = _gat._getTracker("UA-442299-36");
                    pageTracker._initData();
                    pageTracker._trackPageview();

                    // pour tracker tous les liens pointant vers l'extérieur
                    if (firstTracker && secondTracker) {
                        $$('a[href^=http]').each(function(el) {
                            el.addEvent('click', function() {
                                var dd = '/outgoing/' + el.get('href').replace('http://', '');
                                pageTracker._trackPageview(dd);
                            } .bind(this));
                        });
                    }
                }
            });
        }
    };

    //ne pas ajouter google analytics sur les sites s'executant en local ou en stage
    if (cap_CMS_Environment != "stage" && cap_CMS_Environment != "localhost") cap_googleAnalytics.add();



});





