// 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',
  'fontsizer',
  'autovalidate',
  'anchortags',
  'labelizor',
  'imgpop',
  'prettynum',
  'mailtoenabler',
  'equalizeheights',
  'tabswitcher',

  function(){
    var $ = jQuery,
        body = $('body').addClass('js-active'),
        article = $('.article'),
        mainCols = $('.pgmain, .pgextra2'),
        msie =   $.browser.msie   &&  parseInt($.browser.version,10)<9;  // or: $('html').is('.msie');

    var texts = {
        is: {
            newWindow:        'Opnast í nýjum vafraglugga',
            fileText:         'skjal',
            backText:         'Til baka',
            printText:        'Prenta',
            sendText:         'Senda',
            naestaskref:      'Næsta skref',
            closeText:        'Loka'
          },
        en: {
            newWindow:        'Opens in new window',
            fileText:         'file',
            backText:         'Go back',
            printText:        'Print',
            sendText:         'Send',
            naestaskref:      'Next steps',
            closeText:        'Close'
          }
      };
    texts = texts[ $.lang() ]  ||  texts.en;

    var numKeys = [
            8, // BACKSPACE
            9, // TAB
           37, // LEFT
           39, // RIGHT
           46, // DEL
           48, // 0
           49, // 1
           50, // 2
           51, // 3
           52, // 4
           53, // 5
           54, // 6
           55, // 7
           56, // 8
           57, // 9
           96, // 0 (numpad)
           97, // 1 (numpad)
           98, // 2 (numpad)
           99, // 3 (numpad)
          100, // 4 (numpad)
          101, // 5 (numpad)
          102, // 6 (numpad)
          103, // 7 (numpad)
          104, // 8 (numpad)
          105, // 9 (numpad)
          110, // , (numpad)
          188, // ,
          190  // .
        ];

    if ( body.is('.home') ) 
    {
      var tabpane = $('.tabpane'),
          tabRand = Math.floor( Math.random()*3 );

      tabpane
          .makeTabbox()
          .tabSwitcher({ setFragment: false })
          .delegate('a', 'mouseenter', function (e) {
              $(this).trigger('click');
            });
      tabpane


      var pgmm = $('.pgm-middle');
          pgmmBoxes = pgmm.find('.popblock'),
          pgmmOver = false;

      pgmmBoxes.find('.boxhead')
          .bind('click', function (e) {
              pgmmBoxes.removeClass('popblock-active')
              pgmm.addClass('popblock-open');
              $(this).parent().addClass('popblock-active');
              return false;
            })
          .bind('mouseenter', function (e) {
              $(this).trigger('click');
            });

      pgmm
        .bind('mouseenter focusin', function (e) {
            pgmmOver = true;
          })
        .bind('mouseleave focusout', function (e) {
            pgmmOver = false;
            setTimeout(function(){
                if (!pgmmOver)
                {
                  pgmmBoxes.removeClass('popblock-active');
                  pgmm.removeClass('popblock-open');
                }
              }, 300);
          });

      pgmm.append(
          $('<a class="close" href="#">'+ texts.closeText +'</a>').bind('click', function (e) {
              pgmmBoxes.removeClass('popblock-active');
              pgmm.removeClass('popblock-open');
              return false;
            })
      );
    } 
    else 
    {
      //btns
      $('.pgmain > .wrap').append('<p class="buttons"><a href="javascript:history.back();" class="btnback">'+ texts.backText +'</a><a href="javascript:window.print()" class="prenta">'+ texts.printText +'</a></p>')
      
      //resize cols
      if ( mainCols.eq(0).height() < mainCols.eq(1).height() )
      {
        mainCols.equalizeHeights();
      }
      
      // sbox eq
      var sbx = $('.sbox .item');
      for (var i=0, l=sbx.length; i<l; i+=2)
      {
        sbx.slice(i,i+2).equalizeHeights();
      }
      sbx.bind('click', function (e) {
          window.location = $(this).find('h3 a').attr('href');
        });
        
      $('.qblock').each(function () {
          var qb = $(this).addClass('qblock-closed');
              heading = qb.find('.boxhead').wrapInner('<a href="#" />');
          heading.bind('click', function (e) {
              qb.toggleClass('qblock-closed');
              return false;
            });
        });
    }

    if (!window.EPLICA_loggedin)
    {
      //fz
      $('<div class="fontsizer"><ul><li class="up"><a title="Stækka letrið" href="/bitar/c2/style/setStyleCookie.jsp?fontSize=1">A+</a></li><li class="dwn"><a title="Minnka letrið" href="/bitar/c2/style/setStyleCookie.jsp?fontSize=-1">A-</a></li></ul></div>').fontsizer({ minSize: 0, defaultSize: 1 }).insertAfter('.pgmain .box:not(.topbox) h1:first');
      
      //zebra tables
      $('tbody tr:nth-child(2n)').addClass('odd');


      if (article.length)
      {
        //images in articles
        var imgbox = article.find('.imagebox')
        imgbox.find('a.img')
            .each(function() {
              var imgsrc = $(this).find('img').attr('src').replace(/\/[^\/]+\/([^\/]+)$/, '/large/$1');
              $(this).attr('href', imgsrc)
            })
            .imgPopper({
                curtainColor : '#ffffff',
                curtainOpacity : '0.75',
                yOffset: 15
              });

        if (article.find('.summary').length && imgbox.length)
        {
          imgbox.insertAfter( article.find('.summary') );
        }

        //videolinks
        article.find('a.videolink').Req(
            'q-videolinks.js',
            function() {
              $(this).videoLinks();
            }
          );

        //content collapsing
        article.find('h3.collapse, h2.collapse').each(function(){
            var head = $(this);
            head.addClass('collapse-active collapse-closed').nextUntil('h2, h3, hr, p.buttons').wrapAll('<div class="collapseouter" />').wrapAll('<div class="collapsebox" />').parent().parent().hide();
            head.wrapInner('<a href="#" />').find('a').prepend('<span class="icn" />').bind('click', function (e) {
                head
                    .toggleClass('collapse-closed')
                    .next().slideToggle('fast');
                return false;
              });
          });

        article.find('.naestaskref')
            .each(function(){
                var list = $(this),
                    heading = list.prev('h2, h3, h4').remove().text()  ||  text.naestaskref;
                $('<div class="sidebox" />')
                    .prepend( '<h2>'+ heading +'</h2>' )
                    .append( list )
                    .insertAfter('h1');
              });

      } // end article


      //sos collapser
      $('.sos .item').each(function(){
          var itm = $(this),
              fulltext = itm.find('.fulltext').wrapInner('<div class="ft-inner" />').hide();
          itm.find('h3 a').prepend('<span class="icn" />').bind('click', function (e) {
              fulltext.slideToggle(200);
              itm.toggleClass('item-open');
              return false;
            });
        });


      
      if (!body.is('.home'))
      {
        //tag external urls
        var link, text, useappend, match;
        mainCols.find('a').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+')')
                                [useappend ? 'append' : 'prepend'](' <span class="icon">('+ text +')</span> ');
                          }
                        });
      }

      //init employee scripts
      $('div.people ').Req('/bitar/common/personas/loadEmployee.js', function(){ this.eplicaEmployeeLoader({emailSelector:'.netfang span'}); });

      $('.netfang').mailtoEnabler();


      $('img').each(function () {
          if (!$(this).attr('title'))
          {
            $(this).attr('title', $(this).attr('alt'));
          }
        });

    } // end loggedin



    $('#lanareiknir').Req(
        Req.localPath + 'js/reiknivel/highcharts.js',
        Req.localPath + 'js/reiknivel/init_charts.js'
      );


    // collapse collapsible tables
    $('table.collapsed').each(function () {
        var clTable = $(this),
            trs = clTable.find('tbody tr'),
            tdCount = trs.eq(0).find('td').length;
        if (trs.length > 10) {
            trs.eq(4).after(
              $('<tr class="collapseRows"><td colspan="' + tdCount + '"><a id="collapseLink" href="#">Sýna allar greiðslur</a></td></tr>')
                .bind('click', function (e) {
                    clTable.addClass('allvisible');
                    return false;
                })
            );
            trs.slice(5, trs.length - 5).addClass('overflow');
            trs.filter(':last').after(
                  $('<tr class="expandRows"><td colspan="' + tdCount + '"><a id="expandLink" href="#">Sýna færri greiðslur</a></td></tr>')
                    .bind('click', function (e) {
                        clTable.removeClass('allvisible');
                        return false;
                    })
            );
        }
      });


    //file filter
    mainCols.find('.catfiles').Req('/skin/basic/js/filterfiles-min.js?v1');


    // Google maps
    var mapCanvas = $('#map_canvas');
    if (mapCanvas.length)
    {
      // Google maps
      var latlng = new google.maps.LatLng(64.146964, -21.935245),
          myOptions = {
            zoom: 15,
            center: latlng,
            mapTypeId: google.maps.MapTypeId.ROADMAP
          },
          map = new google.maps.Map(mapCanvas[0], myOptions),
          marker = new google.maps.Marker({
                      position: latlng,
                      map: map, 
                      title:"Lífeyrissjóður starfsmanna ríkisins - Bankastræti 7"
                    });
    }


    var lsrWizard = $('.lsr-wizard');
    if (lsrWizard.length)
    {
      //show form
      lsrWizard.find('.btn-lsr a').bind('click', function (e) {
          $(this).parent().hide();
          lsrWizard.find('form').show();
          if (_gaq) 
          {
            _gaq.push(['_trackPageview', '/alfur/']);
          }
          return false;
        });

      //trigger steps
      lsrWizard.find('li input').bind('change', function (e) {
          var gotoId = $(this).attr('value').replace('goto-', '');
          $(this).closest('.fi_rdo').hide();
          if (_gaq) 
          {
            _gaq.push(['_trackPageview', '/alfur/'+gotoId]);
          }
          $('#' + gotoId).show();
        });
    }



    var forms = $('form');
    forms
        .autoValidate()
        .find('.fi_num input, .fi_qty input, .fi_amount input')
            .bind('keydown', function (e) {
                //prevent non-numeric
                if ( $.inArray( e.keyCode, numKeys ) > -1 ) {}
                else {
                  e.preventDefault(); 
                }
              })
            .filter('.fi_amount input')
                .bind('change keyup', function (e, init) {
                    //prettify numbers
                    var valToUse = init ? this.getAttribute('value') : this.value,
                        allowTrailingComma = (e.type == 'keyup');
                    this.value = $.prettyNum.make( valToUse, this, allowTrailingComma);
                  })
                .trigger('change');


    // group toggler
    forms.find('.grouptoggle').each(function () {
        var groupCnt = $(this);
        groupCnt.find('> .fi_rdo input')
                    .bind('change', function (e) {
                        var inp = $(this);
                        if (inp.is(':checked')) {
                            var activeGrp = groupCnt.find('.grp' + (inp.parent().index() + 1));
                            groupCnt.find('.group').hide();
                            activeGrp.show();
                            groupCnt.find('li').removeClass('active');
                            inp.parent().addClass(activeGrp.length ? 'active' : 'active nogrp');
                        }
                    })
                    .trigger('change');
      });


    //sitemap collapser
    $('.sitemap').Req('treecollapse', function() { 
        $(this).treeCollapse({ 
            branch: 'li:has(ul)', 
            doTogglers: 1, 
            toggler: '> a.expand',
            startOpen: 'ul.level1 > li:has(ul)'
          }); 
        });

    $('#noflickerCSS').remove();


    //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]);
            }
          }
        });
    }


    //loading body class scripts 
    Req.loadPageScripts();

  }
);
// **** /jqreq *****

