// 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(
  'anchortags',
  'autovalidate',
  'equalizeheights',
  'eutils', // :descof() selector, $.fn.run, 'fontresize' event
  'fickle',
  'curtain',
  'fontsizer',
  'imgpop',
  'listscroller',
  'labelizor',
  'mailtoenabler',
  'popups',
  'tabswitcher',
  'virtualbrowser',
  'x/ifixpng',
  'x/ui-accordion 1.8',

  function(){

    var $ = jQuery,
        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);
                });



      if (!body.is('.minimalscripts')) { //disable heavy scripts for content heavy pages like http://www.velferdarraduneyti.is/frettir/frettatilkynningar

        // 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')
                    .Req('q-videolinks.js',function() {
                        $(this).videoLinks({ vidWidth: 638, vidHeight: 359 })
                    })
                .end()
                .not('.videolink, .notexternal a')
                  .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'
                  });

            //Popup connected imgs
            articles.find('a.zoomimg')
                    .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 = {
                        en: 'Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec'.split(','),
                        is: 'jan,feb,mar,apr,maí,jún,júl,ágú,sep,okt,nóv,des'.split(',')
                      }
                  newsItems =  $(this).find('.item'),
                  monthList = isIS ? months.is : months.en;
              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">' + monthList[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')
        .Req(
            '/bitar/common/personas/loadEmployee.js',
            function(){
                this.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 ($(this).hasClass('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
                    });
            }
        });




    // 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);
    */

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

    $('form')
        .autoValidate()
        .find('.cloneable, .repeatable')
            .Req(
                'fieldsetcloner',
                function() {
                  $(this).fieldsetCloner({ 
                      rowNameSel: 'data-clonetitle' 
                    })
                }
            )
        .end()
        .find('.fi_date input')
            .Req(
                'datepicker 0.9',
                function() {
                  datePicker.defaultCssFile = '/codecentre/jquery/datepicker/0.9/dp.css';
                  datePicker.init();
              }
            );

    // Gera input reiti required ef fyllt er út í fremsta reit, sjá http://www.utanrikisraduneyti.is/verkefni/throunarsvid/vidbragdslisti-fridargaeslu/skraning/
    $('.umsokn form').find('table tr').each(function () {
        var tr = $(this);
        $(this).find('.fi_txt:first-child input').bind('change', function (e) {
            if ($(this).val().length)
            {
              tr.find('.fi_txt').addClass('req');
            }
            else
            {
              tr.find('.fi_txt').removeClass('req');
            }
          });
      });

    //Virtualbrwoser
    var popupCont,
            nothingfoundMsg,
            cacheBust = 0, // cache busting (needed for IE6)
            getPopup = function () {
                if (!popupCont)
                {
                  popupCont = $('<div class="virtualiframe-container" />')
                                    .curtain({ className: '' })
                                    .fickle({
                                        fadein: 500,
                                        fadeout: 500,
                                        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="Loka">Loka</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'
              };
          
     $('.subscrlink').each(function(i, link){
          var linkId = $(this).attr('class')+'-window';

              $(this).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;
                });
        });


    //sitemap collapser
    $('.sitemap').Req('treecollapse', function() { 
        $(this).treeCollapse({ 
            branch: 'li:has(ul)', 
            doTogglers: 1, 
            toggler: '> a.expand',
            startOpen: 'ul.level1 > li:has(ul)'
          }); 
        });


    //track file clicks
    if ( !window.EPLICA_loggedin )
    {
      var extCn = { pdf:'pdf', doc:'doc', docx:'doc', odt:'doc', xls:'xls', xlsx:'xls', ods:'xls', ppt:'ppt', pptx:'ppt' };
      body.delegate('a', 'click', function (e) {
          if (_gaq && this.hostname && this.hostname === location.hostname) 
          {
            var className = extCn[ this.href.replace(/.+\.([^.]+)$/, '$1').toLowerCase() ];
            if (className) 
            {
              $(this).attr('target', '_blank')
              var filename = $(this).attr('href').replace('/media/', '/files-'+ className +'/');
              _gaq.push(['_trackPageview', filename]);
            }
          }
        });
    }

  }
);
// **** /jqreq *****

