// 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(
  'jquery 1.4',
  function(){},

  'anchortags',
  'autovalidate',
  'equalizeheights',
  'eutils', // :descof() selector, $.fn.run, 'fontresize' event
  'fickle',
  'fontsizer',
  'imgpop',
  'listscroller',
  'labelizor',
  'mailtoenabler',
  'popups',
  'tabswitcher',
  'x/ifixpng',
  'x/ui-accordion 1.7',
  function(){
    var $ = jQuery;

    $('body').addClass('js-active');


    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
    {
      
      $('body.home').find('.pgmain .news .moreolder').each(function() {
          var oldBtn = $(this),
              moreHref = oldBtn.find('a').attr('href').replace(/\/$/, '');
          oldBtn.closest('.boxbody').append('<a class="rss" href="'+ moreHref +'/rss.xml">RSS-þjónusta</a>');
          oldBtn.closest('.boxbody').append($(this).clone().addClass('moreolder-clone'));
        })
      
      // pngfix for IE6
      if ($.browser.msie && $.browser.version < 7) {
        $('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);
                });
          
          

      var articles = $('.article');


      // 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 a:not(:has(img))').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');


      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').replace(/\/[^\/]+\/([^\/]+)$/, '/large/$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').after(
          $('<a class="btnfacebook">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;
                })
        );

    }




    // 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
    $('div.people').Req('/bitar/common/personas/loadEmployee.js', function(){ this.eplicaEmployeeLoader(); });


    $('.netfang').mailtoEnabler();


    // yearindex
    $('div.yearindex li')
        .each(function(i){

          var li = $(this);
          var trigger = $('h4', li);
          var container = $('p', li);

          if (i != 0) {
            container.hide();
            li.addClass('closed');
          }

          trigger
              .bind('click', function(){
                  container.slideToggle(300);
                return false;
              });
        });


    // 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>');
                  });
      });
        


    // accordion
    var accordionDiv = $('div.accordion');
    if (accordionDiv.length)
    {
      var accordionAndOtherBoxes = accordionDiv.add( accordionDiv.nextAll('div') ).fin().log().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');
          accordionDiv
              .accordion('option', 'fillSpace', true)
              .accordion('resize');
        }, 200);

    }

    // fix height after accordion has loaded (make this code more sane?)
      $('div.pgmain .mbox .boxbody')
          .add('div.pgmain .linklist .boxbody')
              .not('div.pgmain .ui-accordion .linklist .boxbody')
                  .equalizeHeights();
          
      $('div.mboxes .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($.browser.msie && $.browser.version == 6) {
      $('div.imgdec').each(function(){
          $(this).find('img').eq(0).addClass('first');
      });
    }



    // 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 itm = 'div.item',
                ani = 'accordion',
                wrap = 'both';
          
            if($(this).hasClass('bluebox-v4')) {
                itm = 'li';
                ani = 'carousel';
                wrap = 'loop';
            }
        
            $(this)
                .listscroller({
                    item          : itm,
                    windowSize    : 1,
                    stepSize      : 1,
                    paging        : true,
                    speed         : 500,
                    autoScrollDelay : 7000,
                    controls      : 'below',
                    hideClass     : 'overflow',
                    wrap          : wrap,
                    animation     : ani
                });
        });




    // dropdowns
    var droplinks = $('div.droplinks'),
        droplinksTrigger = $('.droplinks-trigger a');

    droplinksTrigger
        .bind('click', function(){
            droplinks.fickle('open');
            return false;
        });

    droplinks
        .fickle({
          fadein: 500,
          fadeout: 500,
          opener: droplinksTrigger
        })
        .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;
                        });
            });


    // 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);
    */

    // remove flicker trick
    $('#noflickerCSS').remove();

    // fontsizer
    $('.pagestyle').fontsizer();

    // validate all forms
    $('form').autoValidate();

  }
);
// **** /jqreq *****

