// encoding: utf-8
/*@cc_on/*@if(@_jscript_version<5.7)try{document.execCommand('BackgroundImageCache',0,1)}catch(e){}/*@end@*/

Req(
  'autovalidate',
  'curtain',
  'easing-mini',
  'eutils',
  'fontsizer',
  'fickle',
  'imgpop',
  'labelizor',
  'listscroller',
  'simplecarousel',
  'tabswitcher',
  'x/cookie',
  'x/ifixpng',

  function(){

    var $ = jQuery,
        msie = $.browser.msie,
        F = msie ? 0 : 1;

    $('body').addClass('js-active');

    $('#qstr').labelizor();

  /*
    if(window.collapseSections) {
      collapseSections.config = {
        'div.stafflist div.item' : {
          headSel     : "h3"
        }
      };

      collapseSections.init();
    }
  */

    if (!window.EPLICA_loggedin)
    {

      /* meta date elm morph */
      var isMonths = ['jan','feb','mar','apr','maí','jún','júl','ágú','sep','okt','nóv','des'],
          dateElms = $('div.item h3 .meta .date, div.blogg p.meta .date');

      dateElms.each(function(i) {
          var dateSplit = this.innerHTML.split(".");
          $(this).html('<span class="d">' + dateSplit[0] + '</span> ' +
                        '<span class="m">' + isMonths[dateSplit[1]-1] + '</span> ' +
                        '<span class="y">' + dateSplit[2] + '</span>')
                  .insertBefore( $(this).parent() );
        });

    }




    $('.pgfoot').each(function(){
        var foot = $(this),
            tabs = foot.find('.tabnav ul.tabs');
        if (!tabs[0])
        {
          tabs = foot.find('.tabbox')
                    .makeTabbox()
                        .removeClass('tab-box')
                        .addClass('tabnav');
        }
        tabs
            .tabSwitcher({
                //cssHide: true,
                paneClass: 'tabpane-active'
              });

      });


    $('ul.tabs').tabSwitcher();



    if ($.fn.simpleCarousel) {
      $('div.carousel div.carousel-content')
          .simpleCarousel({
              item:            '.brands',
              nextBtnTemplate: '<a href="#" class="next">Næsti</a>',
              prevBtnTemplate: '<a href="#" class="prev">Fyrri</a>',
              wrap:            true
            });

      $('div.companyinfo div.newproducts ul')
          .simpleCarousel({
              item:            'li',
              nextBtnTemplate: '<a href="#" class="next">Næsti</a>',
              prevBtnTemplate: '<a href="#" class="prev">Fyrri</a>',
              wrap:            true
            });

    }


    //$('div.logolisti a img, div.companyinfo div.newproducts li img, div.products .imglist img').each(function() {
    $.fn.setImgs = function() {
      $(this).each(function(){
          var img = $(this),
              linkElm = img.parent(),
              title = linkElm.attr('title') || img.attr('alt') || img.attr('title');
          linkElm
              .css({
                  backgroundImage : 'url(' + img.attr('src') + ')',
                  backgroundRepeat : 'no-repeat',
                  backgroundPosition : '50% 50%'
                })
              .attr('title', title)
          img.hide();
        });

        return this;
    }
    $('div.logolisti a img, div.companyinfo div.newproducts li img, div.products .imagelist img').setImgs();


    var activateCarousel = function () {
            var itemBox = $(this),
                //isInPopup = itemBox.is('.popbox'),
                isInPopup = itemBox.is('.popupbox'),
                //listItems = itemBox.find('ul.imglist li'),
                listItems = itemBox.find('ul.imagelist li'),
                delayTimeout;

            if (listItems.length < 2) { itemBox.addClass('singleimage'); }
      
            var imgDiv = $('<div class="img" />')
                            .bind('click', function (e) { return false; })
                            .prependTo(itemBox);
            if (!isInPopup)
            {
              imgDiv.bind('click', function (e) {
                  var imgBoxImg = this,
                      popup = $('<div class="popup popup-productimg" />');
                      //imgList = listItems.eq(0).parents('.imglist').clone().wrap('<div />').parent().fin();
                      imgList = listItems.eq(0).parents('.imagelist').clone().wrap('<div />').parent().fin();

                  imgList
                      .css('top', $(window).scrollTop() )
                      .addClass('popbox')
                      .append(
                          $('<a class="closebtn" href="#">Loka</a>')
                              .bind('click', function (e) {
                                  popup.fickle('close');
                                  return false;
                                })
                        )
                  popup
                      .css('top', $(window).scrollTop() + 40 )
                      .hide()
                      .append( imgList )
                      .curtain({ className:null })
                      .fickle({
                          focusTarget: null,
                          opener:   imgBoxImg,
                          fadein:   F*500,
                          fadeout:  F*300,
                          onClosed: function (e) { $(this).remove(); }
                        })
                      .appendTo('body')
                      .fickle('open');

                  //imgList.find('.imglist li')
                  imgList.find('.imagelist li')
                      .removeClass('visible overflow');
                  imgList
                      .each(activateCarousel)
                      .prepend('<a class="focustarget" href="#">.</a>');
                });
            }

            listItems
                .bind('click', function (e) {
                    var li = $(this);
                        
                    if (!li.is('.current'))
                    {
                      var item = li.closest('.products .boxbody, .popbox'),
                          href = li.find('a').attr('href');
                            //href = li.find('span img').attr('src');

                      //item.find('.imglist li').removeClass('current');
                      item.find('.imagelist li').removeClass('current');
                      li.addClass('current');
                      var imgBox = item.find('div.img')
                                      .html('<span><a href="' + href + '"><img src="' + href + '" alt="" /></a></span>')

                      if (isInPopup)
                      {
                        imgBox.log().find('a').zap();
                      }
                    }
                    return false;
                  })
                .bind('mouseenter focusin', function(e){
                    if (!delayTimeout)
                    {
                      var li = $(this);
                      delayTimeout = setTimeout(function (e) {
                          li.trigger('click');
                        }, 500);
                    }
                  })
                .bind('mouseleave focusout', function (e) {
                    clearTimeout(delayTimeout);
                    delayTimeout = undefined;
                  })
                .filter(isInPopup ? '.current' : ':first')
                    .removeClass('current')
                    .trigger('click');

            var windowSize = isInPopup ? 6 : 3;
                stepSize = isInPopup ? 3 : 1,
                aspect = isInPopup ? 'horizontal' : 'vertical';
            if (listItems.length > windowSize)
            {
              listItems
                  .parent() // ul
                      .wrap('<div class="imgscrolllist" />')
                      .parent() // div.imgscrolllist
                          .listscroller({
                              item:             'li',
                              windowSize:       windowSize,
                              stepSize:         stepSize,
                              aspect:           aspect,
                              animation:        'carousel',
                              wrap:             'none',
                              overflow:         'hidden',
                              speed:            300,
                              currentPageClass: null,
                              cursorItemClass:  null
                            });
            }

          };







    /** // disabled for now...
    $('div.people').Req(
        'http://www.ntc.is/bitar/common/personas/loadEmployee.js',
        function(){ this.eplicaEmployeeLoader(); }
      );
    /**/ 

  
    // facebook button for blog
    var fButton =  $('<a class="btnfacebook">Senda á Facebook</a>')
                      .attr(
                        'href',
                        'http://www.facebook.com/sharer.php?u='+encodeURIComponent(document.location.href) +'&t='+encodeURIComponent($('div.pgmain .boxhead:first').text()+' | '+$('img.logo:first').attr('alt'))
                      ).wrap('<div class="act" />');

    $('.blogg .boxbody').append(fButton);



            
   //popup windows
    $.fn.popup = function ( cfg ) {
        var popupElm = this;
        if ( popupElm.length) { 
          var curtainElm = $.curtain({
                      className: 'popup-curtain',
                      bg:        'rgb(40,40,40)',
                      opacity:   .90,
                      fixed: true
                    })
              remove = cfg && cfg.remove || false;
          popupElm
              .hide()
              .appendTo('body')
              .addClass('popupbox')
              .before(curtainElm)
              .css({
                    top:        50 + $(window).scrollTop()
                  })
              .fickle({
                  fadein: 350,
                  onOpen:   function (e) { $(this).prev().fadeIn(100);  },
                  onClose:  function (e) { popupElm.fadeOut(200, function() { $(this).prev().fadeOut(100); }); },
                  onClosed: function (e) { if (remove) { popupElm.prev().remove(); popupElm.remove(); } }
                })
              .append('<a class="close" href="#">Loka</a>')
              .find('a.close')
                  .bind('click', function (e) {
                      popupElm.fickle('close');
                      return false;
                    })
              .end()
              .fickle('open');
          popupElm.prev().bind('click', function (e) { popupElm.fickle('close'); });
        }
        return popupElm;
    };


    if (!window.EPLICA_loggedin)
    {

    // products
    $('.products .boxbody')
        .each(function(){
            var itemBox = $(this);

            itemBox
                .find('> ul')
                    .wrapAll('<div class="summary" />')
                    .wrapAll('<div class="tag" />');

            // Add "send to facebook" link to product items
            var anchor = itemBox.prev().attr('name');
            $('<a class="btnfacebook"><span>Senda á Facebook</span></a>')
                .attr({
                    href: 'http://www.facebook.com/sharer.php?u='+encodeURIComponent(document.location.href) + '#' + anchor +'&t='+encodeURIComponent($('div.pgmain .boxhead:first').text()+' | '+$('img.logo:first').attr('alt') )
                  })
                .appendTo( itemBox.find('div.act') );
          })
        .each(activateCarousel);


      /* zebra (lefty) script for products */
      $('.products .item').each(function(i) {
          
          if(i % 2 == 1) {
            $(this).addClass('itm-alt');
          }
        });

      //Ajax - For products popups
      var popper = $('.prods .item a');
      popper.click(function() {
          var products = $('<div class="products" />'),
              toload = $(this).attr('href') + '?justPicPos=pgmain div.products > .boxbody';
          products.load(toload, function() { 
                      $(this)
                          .popup({remove:true})
                          .find('ul:not(.imagelist)')
                              .wrapAll('<div class="summary" />')
                              .wrapAll('<div class="tag" />')
                          .end()
                          .find('.boxbody')
                              .each(activateCarousel); 
                    })
          return false;
        });
    }




    $('#noflickerCSS').remove();

    if (msie && $.browser.version < 7)
    {
      if ($('div.brands').length > 0)
      {
        $('body').addClass('kick').removeClass('kick');
      }
      $('img[src$=".png"]').ifixpng();
    }

    // fontsizer
    $('div.pagestyle').fontsizer();

    // validate all forms
    $('form').autoValidate();
  }
);




/* imgGallery - simple version (no popup) of the script from portusgroup.is */
Req(true,
  'http://codecentre.eplica.is/js/utils_1.1.js',
  function() {

    var imageIndex = null,
         currentImage = null,
         viewPort,
         captionElm,
         viewImage,
         titleElm;


    var makeView = function ( src, img )
    {
      viewPort   = DOM.makeElement('<div class="imgbox"><div class="content"></div></div>');
      viewImage  = document.createElement("img");
      imgContent = DOM.makeElement('<div class="imgcontent"></div>');
      titleElm   = DOM.makeElement('<div class="imgname"></div>');
      captionElm = DOM.makeElement('<div class="imgtext"></div>');

      DOM.appendChild(titleElm,   imgContent);
      DOM.appendChild(captionElm, imgContent);

      DOM.appendChild(viewImage,  DOM.firstElmOf(viewPort));
      DOM.appendChild(imgContent, DOM.firstElmOf(viewPort));

      updateView( null, src, img, 0);

      return viewPort;
    };



    var updateView = function ( e, src, img, newIndex )
    {
      for(var i = 0; i < aElms.length; i++)
      {
        DOM.removeClass(aElms[i].parentNode, 'current');
      }

      DOM.addClass(aElms[newIndex].parentNode, 'current');

      viewImage.src = src;

      var caption = img.alt   || '';
      var title   = img.title || '';

      captionElm.innerHTML = caption;
      captionElm.style.display = (caption) ? '' : 'none';

      titleElm.innerHTML = title;
      titleElm.style.display = (title) ? '' : 'none';

      currentImage = newIndex;

      DOM.removeNode(viewImage);
      DOM.appendChild(viewImage,  DOM.firstElmOf(viewPort));

      if(is_ie.version <= 7) // timing bug fix
      {
        DOM.addClass(document.body, 'kick');
        DOM.removeClass(document.body, 'kick');
      }

      return false;

    };


    var imageIndex = DOM.get('div.blogg ul.thumbs');

    for(var i = 0; i < imageIndex.length; i++)
    {
      aElms = DOM.get('li a', imageIndex[i]);

      if(aElms.length && DOM.firstElmOf(aElms[0]))
      {
        var imgBox = makeView( aElms[0].href, DOM.firstElmOf(aElms[0]) );
        DOM.insertBefore(imgBox, imageIndex[i]);

        for(var j = 0; j < aElms.length; j++)
        {
          Event.add( aElms[j], 'click', updateView, null, aElms[j].href, DOM.firstElmOf(aElms[j]), j );
        }
      }
    }

  }
);
