// 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',
  'curtain',
  'fickle',
  'virtualbrowser',
  'fontsizer',
  'autovalidate',
  'labelizor',
  'imgpop',
  'roundcorners',
  'x/ui-accordion 1.7',
  'equalizeheights',
  'easing-mini',
  'anchortags',
  'mailtoenabler',

  function(){
    var $ = jQuery;
    isIS = $('html').attr('lang') == 'is';
    var msie = $.browser.msie  &&  parseInt($.browser.version, 10) < 9;
    //var msie8 = msie  &&  parseInt($.browser.version, 10) >= 8;
    var msie6 = msie  &&  parseInt($.browser.version, 10) < 7;
    
    
    //Two variables necessary for Virtual Browser
    var MSIEver = parseFloat($.browser.verson);
    var isMSIE = $.browser.msie && MSIEver<7;
    
    
    // fixes for IE
    if (msie6) 
    {
      $('img[src$=".png"]').Req('x/ifixpng', function(){
          $(this).ifixpng();
        });
    }

    if (msie)
    {
      $('body').addClass('msie');
      //rounded corners for browsers that dont support border-radius
      $('.home .pghead .wrap').roundCorners();
    }

    // labelize search input
    $('#qstr').labelizor();

    if (!window.EPLICA_loggedin)
    {

      //zebra tables
      $('tbody tr:nth-child(2n-1)').addClass('odd');
      //$('tbody tr:nth-child(2n)').addClass('even');
      
      
      // activate imgpopper
      var openImageLinkInPopup = function (e) {
              var altText = $(this).find('img').attr('alt');
              $('<div class="imagepopup"><img src="'+ this.href +'" alt="'+ altText +'" /></div>')
                  .popup();
              return false;
            };

        //popup in articles in imagebox
        $('div.article div.imagebox a.img')
            .bind('click', openImageLinkInPopup);

        //popup in gallery
        $('.mediagallery a.img')
            .each(function() {
                var imgsrc = $(this).find('img').attr('src').replace(/\/[^\/]+\/([^\/]+)$/, '/large/$1');
                $(this).attr('href', imgsrc)
              })
            .bind('click', openImageLinkInPopup);
              
        //popup in imagelist      
        $('div.imagelist li a')
              .each(function(){
                  // remove when jsp has been fixed
                  var img = $(this).find('img')[0];
                  this.href = img.src.replace('/list/', '/large/');
                })
            .bind('click', openImageLinkInPopup);
        
        //popup in articles              
        var article = $('.twocol div.article div.boxbody, .threecol div.article div.boxbody'),
            articleImages = $('> img, p > img, span > img', article);
        articleImages
            .each(function() {
                var imgSrc = $(this).attr('src'),
                    largeImg = imgSrc.replace(/\/[^\/]+\/([^\/]+)$/, '/large/$1'),
                    imgTitle = $(this).attr('alt');
                $(this)
                    .wrap('<a title="'+ imgTitle +'" href="'+ largeImg +'"></a>');
              });
        articleImages
            .parent()
            .bind('click', openImageLinkInPopup);
        
        //popup in articles with imgbox           
        $('div.article div.boxbody div.imgbox a img')
            .parent()
            .bind('click', openImageLinkInPopup);
              


    }


    //remove flicker trick
    $('#noflickerCSS').remove();


    //Accordion
    $('div.accnav')
        .find('h2.boxhead')
            .wrapInner('<a href="#"/>')
        .end()
        .wrapAll('<div class="accbox" />')
        .parent()
            .accordion({ 
                header: 'h2.boxhead'
              })
            //stupid jquery ui bug making headers not keyboard navigateable with tabindex: -1
            .bind('accordionchange', function(event, ui) {
                ui.oldHeader.attr('tabindex', '');
              })
            .find('h2.boxhead')
                .attr('tabindex', '');

    
    // equal height columns
      // cnav boxes
    var cnavs = $('div.cnav');
    for (var i=0, l=cnavs.length; i<l; i+=3)
    {
      cnavs.slice(i,i+3).equalizeHeights();
    }

    $('.twocol .pgwrap-inner > div').equalizeHeights();
    $('.threecol .pgwrap-inner > div').equalizeHeights();
    
    
    //calendar date info popups 
    $('body.home div.monthlist')
        .Req('http://sjukravefur.eplica.is/bitar/common/calendar/calendarPager.js', function(){
            var initCalendars = function ( e ) {
                $('div.dateinfo', this)
                    .hide()
                    .parent()
                    .bind('mouseenter focusin', function(e){
                        $(this).find('div.dateinfo')
                            .stop()
                            .css({ opacity : 1 })
                            .css({ height : 'auto' })
                            .css({ width : 'auto' })
                            .show(200, 'easeOut');
                      })
                    .bind('mouseleave focusout', function(e){
                        $(this).find('div.dateinfo')
                            .stop()
                            .css({ opacity : 1 })
                            .css({ height : 'auto' })
                            .css({ width : 'auto' })
                            .hide(200, 'easeIn');
                      });
              };

            this
                .eplicaCalendarLoader()
                .bind('reload', initCalendars);

            initCalendars.call(this);
          });
          
      //tag external urls
    if (!window.EPLICA_loggedin)
    {
      
      //var anchors = $('div.pgwrap-inner a')
      // Uncomment the preceding line--and comment out the following line--in order to activate file type icons for anchors in pgmain.
      var anchors = $('.relatedfileslist a, .mediacategory h3 a')
      anchors
          .anchorTags({
              usePatterns:  ['doc', 'pdf', 'xls']
            })
          .filter('a.external, a.file_pdf, a.file_doc, a.file_xls')
              .filter(function() { return !$('img', this).length })
                  .each(function() {
                      var match = $(this)[0].className.match(/(^| )file_([a-z]+)( |$)/);
                      var action = $(this).closest('.pgmain').length ? 'append' : 'prepend';
                      if ( match ) 
                      {
                        var text = match[2];
                        $(this).attr('title', text+' skjal')[action](' <span class="icon">('+ text +')</span>');
                      }
                      else if ( $(this).is('.external') )
                      {
                        var externalText = isIS ? 'Opnast í nýjum vafraglugga' : 'Open in new window';
                        $(this).attr('title', externalText)[action](' <span class="icon">('+ externalText +')</span>');
                      }
                    });
                

     //Ajax
     //var popanchors = $('div.pgwrap-inner a')
      var popanchors = $('div.pgwrap a')
      popanchors.filter('.popup')
          .bind('click', function (e) {
              var link = $(this),
                  popupForm = link.data('popupForm');
              if (popupForm)
              {
                popupForm.fickle('open');
              }
              else
              {
                $.get(
                    link.attr('href'),
                    { justPicPos: 'pgmain' },
                    function(data){
                        var popData = $(data).find('.box, .ajaxbox').filter(':first');
                        popData.popup();
                        link.data('popupForm', popData); // store for later
                      }
                  );
              }
              return false;
            });


      // Get related files lists from .pgmain and place them into .pgextra1
      $('.threecol .pgmain .relatedfileslist')
          .each(function() {
              $(this)
                  .prependTo('.pgextra1 .wrap')
                  .wrap('<div class="relatedfiles" />')
                  .before('<h2>Tengt efni</h2>');
            }); 
            
      // Get starfmenn list from .pgmain and place it into .pgextra1
      $('.threecol .pgmain .starfsmennlist')
          .each(function() {
              $(this)
                  .prependTo('.pgextra1 .wrap')
                  .wrap('<div class="starfsmenn" />')
                  .before('<h2>Starfsmenn</h2>');
            });
          
    }
          
     //popup windows
      $.fn.popup = function ( cfg ) {
          var popupElm = this;
          if ( popupElm.length) { 
            var curtainElm = $.curtain({
                        className: 'popup-curtain',
                        bg:        '#404040',
                        opacity:   .70
                      });
            popupElm
                .hide()
                .appendTo('body')
                .addClass('popupbox')
                .prepend('<a class="focustarget" href="#">#</a>')
                .css({
                    top:        150 + $(window).scrollTop(),
                    marginLeft: - $.toInt( popupElm.outerWidth() ) / 2
                  })
                .fickle({
                    fadein: 350,
                    onOpen:   function (e) { curtainElm.fadeIn(100)  },
                    onClose:  function (e) { popupElm.fadeOut(200, function() { curtainElm.fadeOut(100); }) },
                    onClosed: function (e) {  }
                  })
                .append('<a class="close" href="#">Loka</a>')
                .find('a.close')
                    .bind('click', function (e) {
                        popupElm.fickle('close');
                        return false;
                      })
                .end()
                .fickle('open');
            curtainElm
                .insertBefore(popupElm);
          }
          return popupElm;
      };    
    
       $('div.people ').Req('/bitar/common/personas/loadEmployee.js', function(){ this.eplicaEmployeeLoader(); });
       
       
      // Homepage marquee rollovers
      var inter = $('.pghead .international');
      var list = $('.hnav li');

       // Default states
        inter.hide();
        inter.eq(0).show();
       
        $('a', list).bind('mouseenter', function (e) {
            var m = this.className.match(/(?:^| )(cat\d+)(?: |$)/);
            if (m)
            {
              var catName = m[1];
              inter.hide();
              list.removeClass('current');
              $(this).closest('li').addClass('current');
              inter.filter('.'+catName).show();
            } 
          });
             
          
     
          
    
    $('.netfang').mailtoEnabler();
          
    // fontsizer
    $('.pagestyle').fontsizer();

    // validate all forms
    $('form').autoValidate();
          
    //Ajax - For lists
        $('.ajaxlist .summary').hide();
         var popper = $('.ajaxlist a');
          popper.click(function() {
           var thisItem = $(this).parents('.item'),
                thisHead = thisItem.children('h3'),
                thisSummary = thisItem.children('.summary'),
                toLoad = $(this).attr('href')+' .boxbody:first p'; 
           if(thisSummary.is(':hidden')) {
             $('.ajaxlist .summary').hide();
             $('.ajaxlist h3').removeClass('active');
             thisHead.addClass('active');
             thisSummary.load(toLoad)
                       .show();
            return false;
            }
           else if(thisSummary.is(':visible')) {
             thisHead.removeClass('active');
             thisSummary.hide();
            return false;
            }
       });
       
       var mapNav = $('.snav.ismap'),
           mapSpan = mapNav.find('span'),
           mapLevel1 = mapNav.find('.level1 > li'),
           mapLevel1Link = mapLevel1.children('a'),
           mapLevel1Span = mapLevel1Link.children('span'),
           mapLevel2 = mapNav.find('.level2 > li');
       if (mapLevel1.hasClass('current')) {
           mapLevel1Span.hide();
           }
        else if (mapLevel2.hasClass('current')) {
           mapSpan.hide();         
       };
       
       
      // Virtual Browser
      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'
          };

          
     $('.vpopper').each(function(i, link){
          //var linkId = $(link).closest('li')[0].className.split(' ')[0] +'-window';
          var linkId = $(this).attr('class')+'-window';

          // find all links on the page that link to the same URL
          //$('a').filter(function(){ return this.href == link.href; })
              $(this).bind('click', function (e, obj) {
                  getPopup() // <-- returns popupCont
                           .addClass(linkId)
                           .addClass('hastitle')
                           .one('fickleclosed', function(){ $(this).removeClass(linkId); }) // remove-a classa nafn ef fickle er lokað?
                      .fickle('open', { opener: (obj&&obj.opener)||this }); // opener?
                  var elms = popupCont.data('elms'); //?
                  

                  //elms.head.append( link.title );
                  elms.body
                      .one('VBbeforeload', function (e) {
                          $(this).data('virtualBrowser').cfg.linkId = linkId; //cfg?
                        })
                      .virtualBrowser('load', this);
                  return false;
                });
        });

      
      
      
      
      
      
                  

  }
);
// **** /jqreq *****
