// encoding: utf-8
/*@cc_on/*@if(@_jscript_version<5.7)try{document.execCommand('BackgroundImageCache',0,1)}catch(e){}/*@end@*/

// ***** jqreq *****
Req.localPath = Req.localPath || '/skin/basic/'
Req(
  'eutils',
  'autovalidate',
  'easing-mini',
  'equalizeheights',
  'fontsizer',
  'imgpop',
  'labelizor',
  'listscroller',
  'mailtoenabler',
  'switchlist',
  'tabswitcher',
  'anchortags',
  'q-videolinks.js',
  'x/ifixpng',
  'x/ui-accordion',
  
  function(){
    var $ = jQuery,
        body = $('body').addClass('js-active');


    var texts = {
        is: {
            newWindow:        'Opnast í nýjum vafraglugga',
            fileText:         'skjal'
          },
        en: {
            newWindow:        'Opens in new window',
            fileText:         'file'
          }
      };
    texts = texts[ $.lang() ]  ||  texts.en;


    //add bannerclass
    if ( $('.pghead .imgbanner').length ) { $('body').addClass('hasbanner'); };

    $('#xstr').labelizor();

    body.not('.home, .onecol').find('.pgmain .wrap, .pgextra1 .wrap, .pgextra2 .wrap').equalizeHeights();

    if (!window.EPLICA_loggedin)
    {

      $('hr:not(.stream)').wrap('<span class="hr" />');
      $('.sbox .boxhead').wrapInner('<span/>');
      $('tbody tr:nth-child(2n-1)').addClass('alt');

      if (body.is('.home'))
      {

        var fpbox = $('.fpbox .boxbody');
        if (fpbox.length)
        {
          fpbox
              .switchlist({
                  items         : '.item',
                  inclmeta      : false,
                  switchdelay   : 350,
                  fadeoutspeed  : 125,
                  fadeoutease   : 'easeOut',
                  fadeinspeed   : 400,
                  fadeinease    : 'easeIn'
                })
              .find('.item h3 .meta').each(function() {
                  $(this).insertAfter( $(this).closest('.item').find('.img') );
                })
              .end()
              .find('.summary')
                  .each(function(){
                      var imgElm = $('img', this).clone(),
                          moreBtn = $('span.more', this).clone();
                      $('img', this).remove();
                      $('span.more', this).remove();

                      var tabtext = $(this).text();
                      if (tabtext.length > 200) {
                        //only use first 180 letters of summary in frontpage tab articles
                        tabtext = $.cropText(tabtext, 200);
                      }

                      $(this).text( tabtext ).prepend( imgElm ).append(moreBtn);
                    })
              .end()
              .find('.moreolder').each(function(){
                  var moreHref = $(this).find('a').attr('href');
                  $(this).append('<a class="rss" href="'+ moreHref +'/rss.xml">Áskrift af fréttum</a>');
                });

          var minH = fpbox.find('.itemlist').height() + 56;
          fpbox.find('.item').css( 'min-height' , minH );

          var swInterval,
              swIndex = 0,
              swLength = fpbox.find('.item').length - 1,
              swAutoSwitcher = function() {
                swInterval = setInterval(function(){
                    swIndex = swIndex == swLength ? 0 : (swIndex+1);
                    fpbox.find('.itemlist li').eq(swIndex).trigger('mouseenter');
                  }, 6000);
              };
          swAutoSwitcher();
          fpbox
              .bind('mouseenter', function (e) {
                  clearInterval(swInterval);
                })
              .bind('mouseleave', function (e) {
                  swAutoSwitcher();
                })
              .find('.itemlist li')
                  .bind('mouseenter', function (e) {
                      e.stopPropagation();
                      swIndex = $(this).index();
                    });

        } //end fpbox



        $('.accbox')
            .wrapAll('<div class="accbox" />')
            .removeClass('accbox')
            .parent()
                .accordion({
                    header : 'h2.boxhead'
                  });

        $('.tabpane')
            .wrapAll('<div class="tabbox" />')
            .makeTabbox()
                .tabSwitcher({
                    paneClass: 'tabpane-active'
                });

        $('.scrollbox .boxbody')
              .filter(function(){ return $(this).find('.item').length > 3; })
                  .listscroller({ 
                      item : '.item',
                      aspect:      'horizontal',
                      paging:      false,
                      animation:   'carousel',
                      windowSize:  3,
                      stepSize:    3,
                      labelNext  : 'Fleiri',
                      labelPrev  : 'Til baka',
                      speed:       400
                    });
      };


      //zebra tables
      $('.companylist ')
          .find('li:not(.companyinfo)')
            .filter(':nth-child(2n-1)')
                .addClass('alt')
            .end()
          .end()
          .filter(':not(.noajax)')
            .find('li:not(.companyinfo)')
                .each(function() {
                    var company = $(this),
                        link = $(this).find('> a'),
                        isOpen = 0;
                    
                    link.bind('click', function() {
                        var companyinfo = link.data('companyinfo')
                        if(!companyinfo) {
                          $.get(
                              link.attr('href'),
                              { justPicPos: 'pgmain' },
                              function(data){
                                  var companydata = $(data).find('.companyinfo .boxbody > *').wrapAll('<li class="companyinfo" />').parent();
                                  companydata
                                      .prepend('<a class="close" href="#">Loka</a>')
                                      .find('.select')
                                          .remove()
                                      .end()
                                      .find('span.netfang')
                                          .mailtoEnabler()
                                      .end()
                                      .hide()
                                      .insertAfter(company)
                                      .find('a.close')
                                          .bind('click', function (e) {
                                              link.trigger('click');
                                              return false;
                                            })
                                      .end()
                                      .slideDown(200);
                                  company.hide();
                                  link.data('companyinfo', companydata);
                                }
                            );
                          
                          isOpen = 1;
                        } else {
                          if (isOpen) {
                            companyinfo.slideUp(200, function() { company.show(); })
                            isOpen = 0;
                          } else {
                            company.hide();
                            companyinfo.slideDown(200);
                            isOpen = 1;
                          }
                          
                        }
                        return false;
                      })  
                  });


      //dropmenus
      $('.dropmenu h3').each(function() {
          var headline = $(this),
              container = headline.parent(),
              block = headline.parent().find('.block');

          headline
              .filter(function() { return $(this).find('a').length == 0 })
                  .wrapInner('<a href="#" />')
              .end()
              .find('a:first')
                  .bind('click', function() {
                      block.slideToggle(200);
                      return false;
                    });
          
          var leaveTimeout;
          container
              .bind('mouseleave', function() {
                  leaveTimeout = setTimeout(function(){
                      block.slideUp(200);
                    }, 400);
                })
              .bind('mouseenter', function(e){
                  clearTimeout(leaveTimeout);
                });
        });


      var articles = $('.article, .articlelist');
      if (articles.length)
      {
        //popup in articles
        articles.find('.imgbox a:has(img)')
            .each(function() {
              var imgsrc = $(this).find('img').attr('src').replace(/\/[^\/]+\/([^\/]+)$/, '/large/$1');
              $(this).attr('href', imgsrc)
            })
            .imgPopper({
                curtainColor : '#ffffff',
                curtainOpacity : '0.75'
              });


        //link icons
        articles
            .find('a')
                .filter('.videolink')
                    .videoLinks({ vidWidth: 480, vidHeight: 256 })
                .end()
                .not('.videolink')
                    .anchorTags({
                        usePatterns:  ['doc', 'pdf', 'xls']
                      })
                    .filter('.external, .file_pdf, .file_doc, .file_xls')
                        .not(':has(img)')
                            .each(function() {
                                link = $(this);
                                text = '';
                                useappend = false;
                                match = this.className.match(/(^| )file_([a-z]+)( |$)/);
                                if ( match )
                                {
                                  text = match[2].toUpperCase() +' '+ texts.fileText;
                                }
                                else if ( $(this).is('.external') )
                                {
                                  text = texts.newWindow;
                                  useappend = true;
                                }
                                if (text)
                                {
                                  link
                                      .attr('target', '_blank')
                                      .attr('title', (link.attr('title')||link.text()) +' ('+ text+')')
                                      .not(':has(img)')
                                          [useappend ? 'append' : 'prepend'](' <span class="icon">('+ text +')</span> ');
                                }
                              });

      

        //facebook button
        articles.find('.buttons')
            .append(
                $('<a class="facebookbtn" href="#">Facebook</a>')
                    .bind('click', function()  {
                        window.open('http://www.facebook.com/sharer.php?u='+encodeURIComponent(document.location.href)+'&t='+encodeURIComponent($('h1').text()),'sharer','toolbar=0,status=0,width=626,height=436');
                        return false;
                      })
              );

      }

      //eventlists - http://www.si.is/dagatal-ars-nyskopunar/
      var eventlist = body.not('.home').find('.eventlist .item');
      if (eventlist.length) {

        var months = 'janúar,febrúar,mars,apríl,maí,júní,júlí,ágúst,september,október,nóvember,desember'.split(','),
            dates = 'sunnudag,mánudag,þriðjudag,miðvikudag,fimmtudag,föstudag,laugardag'.split(','),
            docLoc = document.location.toString().replace('http://','').split('?')[0],
            singleday = false;

        //setja stakan haus á stökum degi
        if (/\/\d{4}\/\d{2}\/\d{2}(?:\/|$)/.test(docLoc)) {
          var thismonth = docLoc.replace( /.+(?:\d{4}\/)(\d+)(?:.+|$)/, '$1'),
              d = docLoc.match( /.+(?:\d{4}\/\d+\/)(\d+)(?:.+|$)/ ),
              thisdate = d ? d[1] : '',
              itmdate = new Date( 2010, (thismonth - 1), thisdate ),
              eventDate = '<div class="js-date"><span class="d">'+ thisdate +'</span><span class="m">'+ months[thismonth-1].substr(0,3) +'</span></div>';
          singleday = true;
        }

        
        eventlist
            .each(function(){
                var eventitem = $(this)
                    eventmeta =  eventitem.find('.date'),
                    eventVenue = eventitem.find('.venue'),
                    eventTime = eventitem.find('.time'),
                    datetime = $.trim ( eventmeta.text() ).split(/\s+-\s+/),
                    datesplit1 =  datetime[0].split('.'),
                    datesplit2 = datetime[1] ? datetime[1].split('.') : undefined,
                    dateObj = new Date( datesplit1[2], (datesplit1[1] - 1), datesplit1[0] ),
                    dateObj2 = datesplit2 ? new Date( datesplit2[2], (datesplit2[1] - 1), datesplit2[0] ) : undefined,
                    dateText = '';
              
                if ( $.trim(eventVenue.text()).length ) {
                  dateText += ', '
                }
                dateText += dates[dateObj.getDay()] +'inn ' + datesplit1[0] + '. ' + months[(datesplit1[1]-1)]
                if (datesplit2) {
                  dateText += ' til ' + dates[dateObj2.getDay()] +'sins ' + datesplit2[0] + '. ' + months[(datesplit2[1]-1)]
                }
                if ( eventTime.length ) {
                  dateText += ', kl. '
                }

                eventmeta.html( dateText );
                eventmeta.parent().prepend( $(this).find('.venue'));
                eventitem.find('h3').before( singleday ? eventDate :'<div class="js-date"><span class="d">'+ datesplit1[0] +'</span><span class="m">'+ months[(datesplit1[1]-1)].substr(0,3) +'</span></div>');
              })
            .filter(':not(:first)').before('<span class="dashes" />')
      }

      // monthlist (remove empty dates)
      var mlhz = $('.monthlist-hz'),
          mlth = mlhz.find('th'),
          mltd = mlhz.find('td');
      mlhz.find('.calendar').wrap('<div class="calendarwrap" />');
      mltd
        .each(function(i) {
            if($(this).is('.o'))
            {
                $(this).remove();
                mlth.eq(i).remove();
            }
          });


      $('.event .boxbody')
          .each(function(){
              var event = $(this),
                  eventmeta = event.find('.meta'),
                  evtheight = event.height();
              eventmeta.find('li:last').append(',&nbsp;').prependTo(eventmeta);
              event.find('.extrainfo').css({ height : evtheight }).prependTo( event ).show();
            });


      //init employeelist ajax toggler
      $('.people').Req('/bitar/common/personas/loadEmployee.js', function(){ this.eplicaEmployeeLoader({ toggleOpen:  true }); }); 
      $('.netfang').mailtoEnabler();

    }    // end logged in
    else {
      //cleanup
      $('tr').removeClass('alt');
    }


    $('.sitemap').Req('treecollapse', function() { 
        $(this).treeCollapse({ 
            branch: 'li:has(ul)', 
            doTogglers: 1, 
            toggler: '> a.expand',
            startOpen: 'ul.level1 > li:has(ul)'
          }); 
        });
    $('#noflickerCSS').remove();
    $('.pagestyle').fontsizer();
    $('form').autoValidate();

  }
);
