// encoding: utf-8
/*@cc_on/*@if(@_jscript_version<5.7)try{document.execCommand('BackgroundImageCache',0,1)}catch(e){}/*@end@*/

Req.localPath = Req.localPath || '/skin/basic/';
// ***** jqreq *****
Req(
  'jquery',
  'autovalidate',
  'curtain',
  'equalizeheights',
  'eutils', // :descof, .detach()
  'fickle',
  'mailtoenabler',
  'tabswitcher',
  'virtualbrowser',
  'x/bookmark 1.3',
  'x/cufon',  // just for the asset.onload event - which adds a nice jQuery.fn.cufon plugin.
  'x/ui-accordion 1.7',
  Req.localPath + 'design/fonts/CABNDWebBold.font.js',

  function(){
    var $ = jQuery,
        ver = parseFloat($.browser.version),
        isMSIE = $.browser.msie && ver<9,
        isMSIE6 = isMSIE && ver<7;



    $('body:not(.home)').find('.pgextra2, .pgmain').find('> .wrap').equalizeHeights();


    if (!window.EPLICA_loggedin)
    {
      $('.introlist').each(function(){
          $(this).find('.item')
              .equalizeHeights();
        });

      //zebra tables
      $('tbody tr:nth-child(2n)').addClass('even');

      $('.netfang')
          .mailtoEnabler()
          .filter(':descof(.footer)')
              .before('E-mail: ')

      var months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'],
          dot = '<i>.</i>';
      $('.newslist div.item span.date')
          .each(function(){
              var date = $(this).addClass('date-split'),
                  f = $.trim( date.text() ).split(/[. ]+/);
              date.html( '<i class="d">'+ (f[0]<10?'0':'')+f[0]+dot + '</i> <i class="m">'+ months[ f[1] - 1 ]+dot + '</i> <i class="y">'+ f[2] + '</i>' );
            });


      $('.more a, .moreolder a').each(function(){
          var link = $(this);
          link.text( link.text().replace(/\.+$/, '')+'...' );
        });


      if ($.fn.cufon)
      {
        $('h1, h2, h3, div.boxhead').filter(function(){ return parseFloat('0'+$(this).css('right')) < 5000; }).cufon({ autoDetect: true });
        $('.date-split i.d').cufon({ autoDetect: true });
        $('.box:not(.nocufon)').find('h3 a, h2 a').cufon({ autoDetect: true, hover: true });
        $('body.home').find('.grphead').cufon({ autoDetect: true });
        $('.virtualiframe *').cufon({ autoDetect: true });
      }

      //Create collapseable FAQ's
      $('.faq')
          .delegate('h4', 'click', function (e) {
              $(this)
                  .toggleClass('open')
                  .next('.collapse')
                      .toggle();
              return false;
            })
          .each(function () {
              $(this).find('h4')
                  .wrapInner('<a href="#"/>')
                  .each(function () {
                      $(this).nextUntil('h4, hr', true)
                          .wrapAll('<div class="collapse" />')
                          .parent()
                              .hide();
                    });
            });

      //acronym tooltip
      var acroc = $('<div class="acroc"></div>');
      $('acronym').each(function(){
              var atitle  = $(this).attr('title'),
                    elmPos = $(this).position();
              
          $(this).hover(function(){
              $(this).attr('title', '');
              $(this).append(acroc);
              $('.acroc').append(atitle)
            },function(){
                $('.acroc').mouseleave(function(){
                    $(this).detach().empty();
                  });
              });
        });
        
      //share / bookmark
      $('.buttons').each(function(){
          var btnbar = $(this),
              bookmarksOpen,
              shareText = 'Share article',
              emailTextText = 'Send as e-mail',
              emailSubjectText = 'Interesting article',
              emailBodyText = 'I thought you might find this page interesting:\n\n{t}\n{u}',
              shareHover = false,
              shareBtn = $('<span class="share"><a class="sharebtn" href="#">'+ shareText +'</a></span>'),
              bookmarks = $('<div class="share-menu" />')
                              .bookmark({
                                  title:   $('h1:first').text(),
                                  addEmail: true,
                                  emailText: emailTextText,
                                  emailSubject: emailSubjectText,
                                  emailBody: emailBodyText,
                                  sites:   ['facebook', 'twitter', 'google', 'yahoobm', 'stumbleupon', 'digg', 'reddit', 'delicious', 'bitly'],
                                  compact: false, // defaults to `true`
                                  icons:   Req.localPath + 'design/i/icons.png'
                                })
                              .hide();

          shareBtn
              .appendTo( btnbar )
              .append(bookmarks)
              .find('> a')
                  .bind('click', function (e) {
                      bookmarksOpen ?
                          bookmarks.slideUp(200):
                          bookmarks.slideDown(300);
                      bookmarksOpen = !bookmarksOpen;
                      shareBtn.toggleClass('share-open', bookmarksOpen);
                      return false;
                    })
              .end()
              .bind('mouseleave focusout', function(e){
                  shareHover = false;
                  setTimeout(function(){
                      if(!shareHover) {
                        bookmarks.slideUp(200);
                        bookmarksOpen = false;
                        shareBtn.removeClass('share-open');
                      }
                    }, 1000);
                })
              .bind('mouseenter focusin', function(e){
                  shareHover = true;
                });

        });//end btnbar
    }




    // Home page specific actions!
    $('body.home').each(function(){

        if (!window.EPLICA_loggedin)
        {
          $('.welcome')
              .makeTabbox()
                  .find('a')
                      .each(function(){
                          var link = $(this);
                          link.text( link.text().replace(/\.+$/, '') );
                        })
                  .end()
                  .addClass('welcome-tab-box')
                  .tabSwitcher()
              .end()
              .each(function(){
                  var panel = $(this),
                      tab = panel.data('tabswitcher').tab;
                  tab.addClass( (panel.attr('lang') || '').substr(0,2) );
                });
        }

        if (isMSIE6)
        {
          $('.eftamap li:has(li)')
              .bind('mouseenter mouseleave', function(e){
                  $(this)[e.type=='mouseenter'? 'addClass':'removeClass']('hover');
                });
        }

        var newsWrap = $('.news .wrap'),
            shortsWrap = $('.shortcuts .wrap'),

            newslists = newsWrap.find('.newslist'),
            newsMoreLinks = newslists.find('.moreolder a');

        newsWrap.find('.subscriptions').detach(); // shouldn't be on the page any more, but just to be safe.

        $('<a class="subscribe rss" href="#">RSS</a>')
            .bind('click', function (e) {
                $('.subscrnav .rsslinks a').trigger('click', [{ opener: this }]);
                return false;
              })
            .insertAfter( newsMoreLinks );

        $('<a class="subscribe" href="#">subscriptions</a>')
            .bind('click', function (e) {
                $('.subscrnav .subscriptions a').trigger('click', [{ opener: this }]);
                return false;
              })
            .insertAfter( newsMoreLinks );


        newslists
            .equalizeHeights()
            .makeTabbox()
                .find('a')
                    .each(function(){
                        var link = $(this);
                        link.text( link.text().replace(/^(.*) News(.*)$/, '$1$2') );
                      })
                .end()
                .tabSwitcher();

        var accordionDiv = shortsWrap
                              .find('.boxhead')
                                  .wrapInner('<a href="#" />')
                              .end()
                              .wrapInner('<div />')
                              .find('>div')
                                  .accordion({
                                      header: 'h2.boxhead'
                                    });

        shortsWrap
            .find('ul ul')
                  .each(function(){

                      var container = $(this).hide(),
                          trigger = container.prev('a'),
                          triggerParent = trigger.parent().removeClass('parent');

                      trigger
                          .toggle(
                              function(){
                                triggerParent.addClass('current');
                                container.slideDown(300);
                                return false;
                              },
                              function(){
                                container.slideUp(300, function(){
                                  triggerParent.removeClass('current');
                                });
                                return false;
                              }
                            );

                  });

        var shortsAndNews = shortsWrap.add(newsWrap).equalizeHeights();


        // ack timing bugs from hell!
        setTimeout(function(){
            shortsAndNews.equalizeHeights('refresh');
            accordionDiv
                .accordion('option', 'fillSpace', true)
                .accordion('resize');
          }, 200);
      });




      // Insert dummy element for white fadeout gradient.
    $('.imgbanner').append('<b />');


    //remove flicker trick
    $('#noflickerCSS').remove();



    var popupCont,
        f = isMSIE ? 0 : 1,
        nothingfoundMsg,
        cacheBust = 0, // cache busting (needed for IE6)
        getPopup = function () {
            if (!popupCont)
            {
              popupCont = $('<div class="virtualiframe-container" />')
                                .curtain({ className: '' })
                                .fickle({
                                    fadein: 500*f,
                                    fadeout: 500*f,
                                    onOpen: function(){
                                        popupCont.appendTo('body');
                                        elm.css( 'top', $(window).scrollTop() );
                                      },
                                    onClosed: function(){
                                        popupCont.detach();
                                        var elms = popupCont.data('elms')
                                        elms.head.empty();
                                        elms.body.empty();
                                      },
                                    focusTarget: ''
                                  })
                                .bind('click', function (e) { $(this).fickle('close'); });


              var elm =  $('<div class="virtualiframe">' +
                              '<a href="#" class="focustarget">.</a>' +
                              '<div class="title" />' +
                              '<div class="wrap" />' +
                            '</div>')
                              .bind('click', function (e) { e.stopPropagation(); })
                              .appendTo(popupCont),

                  body =  elm.find('.wrap')
                              .virtualBrowser({
                                  params:       'justPicPos=pgmain',
                                  loadmsgMode:  'replace',
                                  onBeforeload: function (e, request) {
                                                    var url = request.url;
                                                    // Open .xml links in a new window
                                                    if (/\.xml$/.test(url))
                                                    {
                                                      request.elm.target = request.elm.target || 'feedwindow';
                                                      e.passThrough = true;
                                                    }
                                                  },
                                  onLoad:       function (e, request) {
                                                    var linkId = $(this).data('virtualBrowser').cfg.linkId,
                                                        box =  $.getResultBody(request.result)
                                                                   .find( (linkId  &&  ajaxSelectors[linkId]) || ajaxSelectors._default );
                                                    if (box.length)
                                                    {
                                                      box.wrap('<div />').find('form').autoValidate();
                                                      request.resultDOM = box;
                                                    }
                                                    else
                                                    {
                                                      request.resultDOM = nothingfoundMsg || (nothingfoundMsg = $('<div class="nothingfound">Nothing found...</div>'));
                                                      setTimeout(function(){ popupCont.fickle('close'); }, 1000);
                                                    }
                                                  }
                                }),

                  closeBtn = $('<a href="#" class="closebtn" title="Close">Close</a>')
                                .bind('click', function (e) {
                                    popupCont.fickle('close');
                                    return false;
                                  })
                                .appendTo(elm);

              popupCont.data('elms', {
                    head:     elm.find('.title'),
                    body:     body,
                    closeBtn: closeBtn
                  }
                );
            }
            return popupCont;
          },

        ajaxSelectors = {
            'rsslinks-window': '.rsslinks',
            _default:          '.pgmain .wrap > *'
            //_default: '.pgmain *:has(>.boxhead):first'
          };



    if (!window.EPLICA_loggedin)
    {
      $('div.people').Req(
              '/bitar/common/personas/loadEmployee.js',
              function(){
                  this.eplicaEmployeeLoader();
                }
            );
    }




    $('.subscrnav a').each(function(i, link){
        var linkId = $(link).closest('li')[0].className.split(' ')[0] +'-window';

        // find all links on the page that link to the same URL
        $('a').filter(function(){ return this.href == link.href; })
            .bind('click', function (e, obj) {
                getPopup() // <-- returns popupCont
                    /**/.addClass(linkId)
                    /**/.one('fickleclosed', function(){ $(this).removeClass(linkId); })
                    .fickle('open', { opener: (obj&&obj.opener)||this });
                var elms = popupCont.data('elms');

                elms.head.append( link.title );
                elms.body
                    .one('VBbeforeload', function (e) {
                        $(this).data('virtualBrowser').cfg.linkId = linkId;
                      })
                    .virtualBrowser('load', this);
                return false;
              });
      });


      //langnav

      var langnavLinks = $('.langnav a');

      langnavLinks
          .each(function(i){

              var r=new RegExp($(this).attr('href'));

              if( r.test(document.location.toString())) {
                $(this).closest('li').addClass('current');

                if(i > 0) {
                  langnavLinks.eq(0).closest('li').removeClass('current');
                }

              }

          });

    
          
    //Press Releases search box show/hide
    var prsearch = $('.pr-search')
    prsearch
        .addClass('dormant')
        .find('.fi_txt label')
            .click(function() {
                prsearch.toggleClass('dormant');
              });


    $('form').autoValidate();
          

  }
);
// **** /jqreq *****

