// encoding: utf-8
/*@cc_on/*@if (@_jscript_version<5.7)try{document.execCommand('BackgroundImageCache',0,1)}catch(e){}/*@end@*/

(function($) {

    var isIS = $('html').attr('lang') == 'is',
        body = $('body').addClass('js-active'),

        bVer = parseInt($.browser.version, 10),
        msie = $.browser.msie  &&  bVer<9,
        msie67 = msie  &&  bVer<8,
        msie7 = msie67  &&  bVer==7,
        msie6 = msie67  &&  bVer==6;

    
    var mboxes = $('.mboxes'),
        pgmain = $('.pgmain');

    if (window.EPLICA_loggedin)
    {
      // cleanup of old discontinued styles - in the hope that they'll slowly seep into the database via Editor innerHTML submitting. :)
      $('h2.heavy, h2.lite').removeClass('heavy lite');
      $('td.alt, th.alt, ul.alt').removeClass('alt');
      $('table')
          .removeClass('grid')
          .filter('bframe' ).addClass('frame' ).end()
          .filter('bframel').addClass('framel').end()
          .filter('bframer').addClass('framer').end()
          .filter('bframec').addClass('framec').end()
          .removeClass('bframe bframel bframer bframec');

    }
    else
    {
      if ( body.is('.home') )
      {
        pgmain.find('.news .moreolder')
            .each(function() {
                var oldBtn = $(this),
                    moreHref = oldBtn.find('a').attr('href').replace(/\/$/, ''),
                    boxBody = oldBtn.closest('.boxbody'),
                    rsstext = isIS ? "RSS-þjónusta" : "RSS-feed";

                // inject an .rsslink if one isn't already present (e.g. as an HTML page include)
                if ( !boxBody.closest('.wrap').find('a.rsslink')[0] )
                {
                  boxBody.append('<a class="rsslink" href="'+ moreHref +'/rss.xml">'+rsstext+'</a>')
                }
                boxBody.append($(this).clone().addClass('moreolder-clone'));
              });
      }


      // pngfix for IE6
      msie6  &&  $('img[src$=".png"]').ifixpng();


      // mboxes
      $('.mbox')
          .find('.boxhead')
              .wrapInner('<span />')
          .end()
          .find('.moreolder')
              .run(function(){
                  var moreolder = this.each(function(){
                          $(this)
                              .css({ right: 'auto' })
                              .data('mbox-boxhead', $(this).closest('.mbox').find('.boxhead'));
                        }),
                      setLeftPos = function (e) {
                          moreolder.each(function(){
                              var morebtn = $(this);
                              morebtn.css({
                                  right: 'auto',
                                  left: morebtn.data('mbox-boxhead').outerWidth(true)
                                });
                            });
                        };
                  setLeftPos();
                  $(window).bind('fontresize', setLeftPos);
                });




      // rounded corners for images
      /* $('div.article div.imagebox img, div.article img.left, div.article img.right, div.imgdec img, div.articlelist .item > img') */
      $('img').filter('div.article div.imagebox img,  div.article div.imgbox img,  .news .item img,  img.borderl,  img.borderr,  div.articlelist .item > img')
            .each(function(){
                var img = $(this),
                    extraClass =  !this.className ?
                                      '':
                                  img.hasClass('left') || img.hasClass('borderl') ?
                                      ' imgbor-left':
                                  img.hasClass('right') || img.hasClass('borderr') ?
                                      ' imgbor-right':
                                      '';
                $(this).wrap('<span class="imgbor'+ extraClass +'"><span><span /></span></span>');
            });

      //tag external urls
      pgmain.find('a:not(:has(img))')
                .filter('.videolink')
                    .videoLinks({ vidWidth: 638, vidHeight: 359 })
                .end()
                .not('.videolink')
                    .anchorTags({
                        localDomains: ['(www.)?stjornarrad.is', '[^/]*raduneyti.is' ],
                        usePatterns:  ['doc', 'docx', 'pdf', 'xls', 'xlsx']
                      })
                    .filter('a.external, a.file_pdf, a.file_doc, a.file_docx, a.file_xls, a.file_xlsx')
                        .append('<span class="icon" />');


      //zebra tables
      $('table').filter('.frame, .framel, .framer, .framec')
          .find('tbody tr:nth-child(2n-1)')
              .addClass('odd');
      //$('tbody tr:nth-child(2n)').addClass('even');


      var articles = $('.article');
      if ( articles[0] )
      {
        articles.find('div.imagebox')
            // make too wide imageboxes hug the largest image
            .each(function(){

                var imagebox = $(this),
                    imgLinks = imagebox.find('a.img'),
                    maxImgWidth  = 0,
                    count = imgLinks.length-1;

                imagebox.find('img')
                    .bind('load', function (e) {
                        maxImgWidth = Math.max( maxImgWidth, $(this).outerWidth(true) );
                        if (!count--)
                        {
                          var diff = imgLinks.width() - maxImgWidth;
                          if (diff)
                          {
                            imagebox.width(imagebox.width() - diff)
                          }
                        }
                      })
                    .filter(function(){ return !!this.complete; })
                        .trigger('load');


              })
            //popup in articles
            .find('a.img')
                .each(function(){
                    var imgsrc = $(this).find('img').attr('src')
                    if ( !/\.(png|jpe?g|gif)$/.test(imgsrc) )
                    {
                      imgsrc = imgsrc.replace(/\/[^\/]+\/([^\/]+)$/, '/xlarge/$1');
                      $(this).attr('href', imgsrc)
                    }
                  })
                .imgPopper({
                    curtainColor : '#000000',
                    curtainOpacity : '0.75'
                  });



        //Article collapser
        articles.filter('.collapse-h4')
            .find('h4')
                .each(function() {
                    var heading = $(this);
                    heading.wrapInner('<a href="#" />');
                    heading.add( heading.nextUntil('h2, h3, h4, .buttons') )
                        .wrapAll( '<div class="collapsebox"><div class="collapsecontent"></div></div>' );
                    heading.prependTo( heading.parent().parent() );
                  })
                .bind('click', function (e) {
                    var cont = $(this).next(), // div.collapsecontent
                         box = cont.parent();
                    if (box.is('.collapsebox-open'))
                    {
                      cont.slideUp(150, function(){
                              box.removeClass('collapsebox-open');
                              cont.css('display', '');
                            });
                    }
                    else
                    {
                      box.addClass('collapsebox-open');
                      cont.hide().slideDown(250);
                    }
                    return false;
                  });

        // tabarticle tabs
        articles.filter('.tabarticle')
            .find('.boxbody')
                .each(function(){
                    var tabpanes = [];
                    $(this).find('h2:not(.subtitle), hr')
                        .each(function(){
                            var h2 = $(this);
                            if (h2.is('h2'))
                            {
                              h2.add( h2.nextUntil('h2, hr', true) ).wrapAll('<div />')
                              tabpanes.push( h2.parent()[0] );
                            }
                            else // we hit a <hr />
                            {
                              return false;
                            }
                          });
                    $(tabpanes)
                        .makeTabbox()
                            .tabSwitcher({
                                cssHide: true,  // <-- mostly just better for printing...
                                paneClass: 'tabpane-active'
                              });

                  });

        articles.find('.buttons a.btnback')
            .run(function () {
                if ( this.length )
                {
                  this.after(
                      $('<a class="btnfacebook" href="#">Senda á 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;
                            })
                    );
                }
              });

      } // END: articles


      // news
      $('.news')
          .each(function(){
              var months = ['jan', 'feb', 'mar', 'apr', 'maí', 'jún', 'júl', 'ágú', 'sep', 'okt', 'nóv', 'des'],
                  newsItems =  $(this).find('.item');
              newsItems
                  .wrapAll('<div class="items" />')
                  .find('.date')
                      .each(function(){
                          var dt = $(this).html().split('.');
                          $(this).html('<span class="day">' + dt[0] + '</span> <span class="month">' + months[dt[1]-1] + '</span>');
                        });
            });

    } // <--- if ( !window.EPLICA_loggedin )




    // make space for .chapters (kaflayfirlit) inside the pgextra1 column.
    $('body.threecol')
        .each(function(){
            var chptrs = $('.article .chapters');
            if (chptrs.length)
            {
              var pe1wrap = $('.pgextra1 > .wrap'),
                  pe1PadTop = parseInt('0'+pe1wrap.css('padding-top'), 10),
                  chPadTop = chptrs.offset().top - chptrs.closest('.wrap').offset().top;
              pe1wrap.css({'padding-top': pe1PadTop+chPadTop+chptrs.outerHeight(true) });
            }
          });


    // stafflist
    var netfangSelectorStr = '.netfang:is(.persona *) span, .netfang:not(.persona li)';
    $(netfangSelectorStr).mailtoEnabler();

    $('div.people').eplicaEmployeeLoader({ emailSelector: netfangSelectorStr });




    // yearindex
    $('div.yearindex li')
        .each(function(i){
            var li = $(this),
                container = li.find('p');
            if (i>0)
            {
              container.hide();
              li.addClass('closed');
            }
            li.find('h4')
                .bind('click', function(){
                    container.slideToggle(300);
                    return false;
                  });
          });




    // accordion
    var accordionDiv = $('div.accordion');
    if (accordionDiv.length  &&  !window.EPLICA_loggedin || !accordionDiv.find('.EPLICA_edit').length )
    {
      var accordionAndOtherBoxes = accordionDiv.add( accordionDiv.nextAll('div:not(.facebooklink)') ).fin()
                                          .equalizeHeights(),
          accordionDiv = accordionDiv.wrapInner('<div/>').children().fin(),
          accordionTogglers = accordionDiv.find('.boxhead');

      if (accordionTogglers.length > 1)
      {
        accordionTogglers
            .wrapInner('<a href="#"></a>')
            .find('a')
                .bind('click', function(e){ e.preventDefault(); });
        accordionDiv
            .accordion({
                header:        '.boxhead',
                selectedClass: 'linklist-open'
              });
      }
      else
      {
        accordionTogglers
            .wrapInner('<i/>') // wrapper for the look
        accordionDiv
            .addClass('linklist-open');
      }
      // Ack timing bugs of hell!
      setTimeout(function(){
          accordionAndOtherBoxes.equalizeHeights('refresh');
          if (accordionTogglers.length > 1)
          {
            accordionDiv
                .accordion('option', 'fillSpace', true)
                .accordion('resize');
          }
        }, 200);

    }

    if ( !window.EPLICA_loggedin )
    {

      pgmain.find('> .wrap')
            .find('.mbox .boxbody, > .linklist .boxbody, .accordion > .linklist .boxbody')
                .equalizeHeights();

      mboxes.find('.mbox > .boxbody').equalizeHeights();

    }


    // tbox
    var tbox = $('.tbox');
    tbox.add('.tabmodule')
        .makeTabbox()
            .tabSwitcher({
                cssHide: true,  // <-- mostly just better for printing...
                paneClass: 'tabpane-active'
              });

    tbox
        .each(function(){
            var tboxInner = $('.boxbody', $(this)),
                tboxLis = tboxInner.find('li'),
                tboxLislength = parseInt(tboxLis.length,10) / 3;

            tboxLis
                .each(function(i){
                    if (i % tboxLislength == 0 && i != 0)
                    {
                      tboxInner
                          .append('<ul />');
                    }
                    if (i >= tboxLislength)
                    {
                      tboxInner.find('ul:last').append($(this));
                    }
                  });
          });


    // talkbox

    $('div.talkbox a')
        .popUps({
            target:  'bigpopup',
            width:   580,
            height:  470,
            minimal: 1
          });


    $('a.diagram')
        .popUps({
            width:   610,
            height:  460,
            minimal: 1
          });


    if ( msie6 )
    {
      $('div.imgdec').each(function(){
          $(this).find('img').eq(0).addClass('first');
      });
    }
    
    
    //Read more link for rss boxes
    if ( mboxes[0] )
    {
      var ltm = mboxes.find('p.moveme'),  //link to move
           wtm = $( '.'+ltm.find('a').attr('class') ), //where to move
           mmLeftPos  = wtm.find('> h2 > span').outerWidth();
      ltm
          .appendTo( wtm.find('.boxbody') )
          .css('left', mmLeftPos);
    }


    // search
    $('.spurlsearchtabs')
        .attr('class', 'tab-box')
        .each(function(){

            $(this).find('.boxbody')
                .tabSwitcher({
                    //cssHide: true,  // <-- mostly just better for printing...
                    paneClass: 'tabpane-active'
                  });

            var searchPanels = $('div.spurlsearch'),
                myFields = searchPanels.find('p.fi_txt input'),
                _currentField = myFields[0];

            searchPanels.find('div.islstafir b')
                .bind('click', function (e) {
                    if (e.target.tagName == 'A')
                    {
                      _currentField.value += e.target.innerHTML;
                      return false;
                    }
                  });
            myFields
                .bind('focus', function (e) { _currentField = this; });

            var explainers = $('div.explainer').hide();
            $('div.spurlsearch a.help')
                .bind('click', function (e) {
                    var helpLink = $(this),
                        id = this.href.split('#')[1],
                        popup = $('#'+id);
                    if ( !popup.data('isfickle') )
                    {
                      popup
                          .data('isfickle', true)
                          .fickle();
                    }
                    popup.fickle('open', { opener:this });
                    return false;
                  });
          });


    // bluebox

    $('div.bluebox')
        .each(function(){

            var box = $(this),
                itmSelector = 'div.item',
                animationType = 'accordion',
                paging = true,
                wrap = 'both';

            if ( box.is('bluebox-v4') )
            {
              itmSelector = 'li';
              animationType = 'carousel';
              paging = false;
              wrap = 'loop';
            }

            if ( box.find(itmSelector).length > 1 )
            {
              box
                  .listscroller({
                      item          : itmSelector,
                      windowSize    : 1,
                      stepSize      : 1,
                      paging        : paging,
                      speed         : 500,
                      autoScrollDelay : 7000,
                      controls      : 'below',
                      wrap          : wrap,
                      animation     : animationType
                    });
            }
        });

      
      // forms
        
      $('form')
        .autoValidate()
        .find('.cloneable, .repeatable')
            .fieldsetCloner({ 
                rowNameSel: 'data-clonetitle' 
              })
        .end()
        .find('.fi_date input')
            .run(function () {
                if ( $(this).length )
                {
                  $('head').append('<link rel="stylesheet" href="//static.stjr.is/js/datepicker/dp.css" media="screen" type="text/css" />');

                  $.datepicker.setDefaults($.datepicker.regional['is']);
                  
                  $(this).datepicker({
                              showOn: 'both',
                              buttonImage: '//static.stjr.is/js/datepicker/i/calendar.gif',
                              buttonImageOnly: true
                            });
                }
              });



    // dropdowns
    var droplinks = $('div.droplinks');
    if ( droplinks[0] )
    {
      droplinks.detach();
      body
          .delegate('.droplinks-trigger a', 'click', function(e){
              var link = $(this);
              droplinks
                  .appendTo('.pgfoot > .wrap')
                  .fickle({
                      fadein:  500,
                      fadeout: 500,
                      opener: link
                    })
                  .find('div.wrap')
                      .each(function(){

                          $('div.dbox .boxbody', this)
                              .each(function(){
                                  $(this).append('<ul />');

                                    var dboxUll = $('ul:last', this);
                                    var dboxlis = $('li', this);


                                    dboxlis
                                        .each(function(i){
                                            if (i != 0 && i >= parseInt(dboxlis.length / 2, 10)) {
                                                dboxUll.append($(this));
                                            }
                                        });

                              });

                          $(this)
                              .append('<a href="#" class="close">Loka</a>');


                          $(this)
                              .find('a.close')
                                  .bind('click', function(){
                                      droplinks.fickle('close');
                                      return false;
                                  });
                      })
                  .end()
                  .fickle('open');
              return false;
          });
    }


    // advertlist (center items)
    /*
    $('div.advertlist div.wrap')
        .each(function(){

            var advertl = parseInt($(this).css('width'), 10);
            var itms =  $('.advert', this);
            var itml = 0;

            itms
                .each(function(){
                    itml += parseInt($(this).css('width'), 10);
                });

            var marghalf = parseInt(parseInt((advertl - itml) / itms.length) / 2, 10) + 'px';

            itms
                .css('margin-left', marghalf)
                .css('margin-right', marghalf);

        });
    */



    // qbox

    $('div.qbox-first:gt(0)')
        .before('<div class="clear">&nbsp;</div>');




    // rbox
    $('div.rbox:not(.rbox-big)')
        .each(function(i){

            if (i % 2 == 1)
            {
              $(this).after('<div class="clear">&nbsp;</div>');
            }

        });


    // advert
    /*
    var adparent = $('.adparent');

    adparent
        .nextUntil('div:not(.advert)')
        .appendTo(adparent);
    */

    $('.pagestyle').fontsizer();




    $('#noflickerCSS').remove();

})(jQuery);


