// ALTIMA NAMESPACE
var altima = {
  // Global Var
  content : false,
  debug : false,

  // Method debug
  speedTrace : function (mode, string){
    if(this.debug){
      if(!this.content){
        this.content = new Array();

        var elementP = $('<p>DEBUG MODE</p>');
        elementP.css({'color' : '#747378', 'text-align':'center', 'text-transform':'uppercase', 'text-decoration':'underline', 'margin':'0 0 10px', 'padding':'0'});

        var elementDiv = $('<div></div>');
        elementDiv.attr('id', 'speed_trace');
        elementDiv.css({'position' : 'absolute', 'top':'5px', 'left':'5px', 'margin':'0', 'border' : '1px solid #747378', 'background':'#fff url(images/logo-altima.png) repeat-y 100% 0', 'color':'#c30140', 'padding':'10px 20px 20px', 'width':'200px' ,'text-align' : 'left', 'z-index' : 9999});

        elementDiv.append(elementP);

        this.content['DIV'] = elementDiv;
        $('body').append(this.content['DIV']);
      }

      switch(mode){
        case 'start':
          this.content[string] = new Date().getTime();
          break;
        case 'stop':
          this.content[string] = (new Date().getTime() - this.content[string]);
          $(this.content['DIV']).html( $(this.content['DIV']).html() + '<p style="margin:0;padding:0;">' + string + ' :: ' + this.content[string] + 'ms' + '</p>')
          break;
      }
    }
  }
}

var gan = {
  //Global var
  espaceClient       : $('#espace-client'),
  espaceClientDetail : $('#espace-client-detail'),
  assurancesOn       : $('#assurances-on'),
  assurancesOff      : $('#assurances-off'),
  trouverConseiller  : null,
  cookieGanName         : 'gan_fr',
  cookieGanOptions      : { path: '/' },

  removeFooterSlot: function()
  {
    var footer_slot = $('#footer_slot').clone();
    $('#footer_slot').remove();

    $('#footers').append(footer_slot);
    $('#footer_slot').show('fast');
  },

  homeFlash : function(){
    var flashvars = {};

    var params = {
      wmode: 'transparent',
      flashvars: 'clickTAG=http://retraite.gan.fr/retraite'
    };

    var attributes = {};

    if (swfobject.hasFlashPlayerVersion('9.0.0')) {
      swfobject.embedSWF('/swf/animation.swf', "flash-home00", "783", "312", "9.0.0", "expressInstall.swf", flashvars, params, attributes);
    }
  },

  setCookieGan : function(tag){
    var cookie = $.cookie(gan.cookieGanName);

    var tagCookie = tag + '|';

    if(cookie != null && cookie.indexOf(tagCookie) != -1){return;}

      cookie += tagCookie;

    $.cookie(gan.cookieGanName, cookie, gan.cookieGanOptions);
  },

  getCookieGan : function(){
    return $.cookie(gan.cookieGanName);
  },

  getExternalLink :function(){
    $('a[href^="http://"], a[href^="https://"]').bind('click', function(e){
      var element = $(this);
      element.attr('target', '_blank');

      var linkHref = element.attr('href');

      gan.setCookieGan(linkHref);

      if(_gaq.push)
      {
        var url = linkHref.split('/');

        var category   = url[2];
        var action     = gan.getActionTracking(element);
        var opt_label  = element.text();
        
        _gaq.push(['_trackEvent', category, action, opt_label]);
      }
    });
  },

  getActionTracking : function(element){
    var zoning = new Array('#espace-client', '#menu',     '#trouver-conseiller', '#menu-droit',  '#content00', '#footer00', '#footer_gan', '#footer01');
    var action = new Array('espace-client',  'nav-haute', 'trouver-conseiller',  'nav-droite',   'contenu',    'footer-1',  'footer-2',    'footer-3');

    var zoning_length = zoning.length;

    for(i=0;i<zoning_length;i++)
    {
      if(element.closest(zoning[i]).length > 0)
      {
          return action[i];
      }
    }

    return 'undefined';
  },

  toggleLayerExceptCurrent: function(current_id)
  {
    if (current_id != "espace-client")  $('#espace-client-detail').hide();
    if (current_id != "menu-droit") {
      $('#menu-droit .content').hide();
      $('#menu-droit>h3>a.selected').removeClass('selected');
    }
    if (current_id != "menu") {
      $('#menu>li>.smenu').hide();
      $('#menu>li>a.selected').removeClass('selected');
    }
  },

  espaceClientToogle : function(){
    // Show Espace Client
    gan.espaceClient.find('a:first').bind('click',function(e){
      e.preventDefault();

      if(!gan.espaceClientDetail.length){return;}
      
      gan.espaceClientDetail.css('display', 'block');

      //on masque tous les autres calques
      gan.toggleLayerExceptCurrent('espace-client');
    });

    // Hide Espace Client
    gan.espaceClientDetail.find('a.close:first').bind('click', function(e){
      e.preventDefault();

      if(!gan.espaceClientDetail.length){return;}
      
      gan.espaceClientDetail.css('display', 'none');
    });

    // Show Espace Client Assurances
    gan.assurancesOff.find('a:first').bind('click',function(e){
      e.preventDefault();

      gan.assurancesOff.css('display', 'none');
      gan.assurancesOn.css('display', 'block');
    });

    // Redirect
    gan.assurancesOn.find('a:first').bind('click', function(e){
      e.preventDefault();
      var selection = $('#assurances-on-select').attr('value');   

      if(selection != "")
      {
        gan.setCookieGan(selection);
        window.open(selection, 'gandialog', '');
      }
    });
  },

  menuToogle : function(){
    $('#menu > li').each(function(){
      // Si catégorie par défaut active
      var actif = $('#menu > li > a.actif:first');
      if(actif.length)
      {
        if(actif.parent().prev().hasClass('first'))
        {
         actif.parent().prev().addClass('first_previous_actif')
        }
        else
        {
          actif.parent().prev().addClass('previous_actif');
        }
      }

      $(this).bind('mouseover', function(e){
        e.preventDefault();

        var linkLi = $(this).find('a:first');

        // Show new menu
        linkLi.addClass('selected');
        if(linkLi.parent().prev().hasClass('first'))
        {
         linkLi.parent().prev().addClass('first_previous')
        }
        else
        {
          linkLi.parent().prev().addClass('previous');
        }
        $('#smenu' + linkLi.attr('rel')).css('display', 'block');

        //on masque tous les autres calques
        gan.toggleLayerExceptCurrent('menu');
      });

      $(this).bind('mouseleave', function(e){
        e.preventDefault();

        // Hide old menu
        var oldMenu = $('#menu > li > a.selected:first');
        oldMenu.removeClass('selected');
        oldMenu.parent().prev().removeClass('previous first_previous');
        $('#smenu' + oldMenu.attr('rel')).css('display', 'none');

        //on masque tous les autres calques
        gan.toggleLayerExceptCurrent('menu');
      });
    });
  },

  menuFooterToogle : function(){
    $('#footer00 a').each(function(){
      $(this).bind('click', function(e){
        var oldFooterDetailRel = $('#footer00 li.selected a').attr('rel');

        $('#footer00 li').removeClass('previous selected next');
        $('#footers .footer00-detail').css('display', 'none');

        var newFooterDetailRel = $(this).attr('rel');
        if(newFooterDetailRel)
        {
          e.preventDefault();
          var parentMenu =  $(this).parent();
          if($('#' + newFooterDetailRel).css('display') != 'block' && newFooterDetailRel != oldFooterDetailRel)
          {
            $('#' + newFooterDetailRel).css('display', 'block');
            if (parentMenu.length > 0)
            {
              parentMenu.addClass('selected');
              parentMenu.prev().addClass('previous');
              parentMenu.next().addClass('next');
            }
          }
        }
      });
    });
  },

  ongletActif: function(){    
    if (typeof onglet_actif != "undefined")
    {
      $("#menu").find("a.actif").removeClass("actif");
      $("#menu").find("a[rel='"+onglet_actif+"']").addClass('actif');
    }
  },

  menuDroitToggle: function(){
    $('#menu-droit .header a').each(function(){
      $(this).bind('click', function(e){
        if(!$(this).parent().hasClass('no-flag'))
        {
          e.preventDefault();
        }

        if(!$(this).hasClass('selected'))
        {
          $('#menu-droit .header a').removeClass('selected');
          $('#menu-droit .content').slideUp('fast');

          //on masque tous les autres calques
          gan.toggleLayerExceptCurrent('menu-droit');
        }

        if(!$(this).parent().hasClass('no-flag'))
        {
          $(this).parent().next().slideToggle();
          $(this).toggleClass('selected');
        }
      });
    });
  }
}

$(document).ready(function(){
  gan.removeFooterSlot();

  if($('#flash-home00').length)
  {
     gan.homeFlash();
  }

  gan.espaceClientToogle();

  $('.png').pngFix();

  DD_roundies.addRule('.espace-client-rounded', '7px');

  if($('#category .actu').length)
  {
    DD_roundies.addRule('#category .actu', '0 7px 7px 7px');
  }

  gan.ongletActif();

  gan.menuToogle();

  gan.menuFooterToogle()

  if($("#menu-droit").length)
  {
    gan.menuDroitToggle();
  }

  gan.getExternalLink();
});

