﻿// encoding: utf-8
/*@cc_on/*@if(@_jscript_version<5.7)try{document.execCommand('BackgroundImageCache',0,1)}catch(e){}/*@end@*/

Req(
  'eutils',
  'fontsizer',
  'mailtoenabler',
  'autovalidate',
  'labelizor',
  'x/ifixpng',
  'x/cookie',
  'x/easing',
  'x/ui-fxcore',
  'x/ui-fxcolor',
  'x/ui-accordion',
  'tabswitcher',
  function(){

    var $ = jQuery;


    if (!window.EPLICA_loggedin)
    {

      $('img').ifixpng();
      
      $('form').autoValidate(); // validate all forms
      
      $('div.pagestyle').fontsizer();

      $('ul.tabs').tabSwitcher();
      
      $('#qstr').labelizor();
      
      var articleDiv = $('div.article');
      articleDiv.find('a[href$=".pdf"]:not(:childof(td))').addClass('pdf');
      articleDiv.find('a[href$=".doc"]').addClass('doc');
      articleDiv.find('a[href$=".xls"]').addClass('xls');
      articleDiv.find('a[href$=".ppt"]').addClass('ppt');
      articleDiv.find('a[href$=".mpg"], a[href$=".mov"], a[href$=".mp4"], a[href$=".wmp"]').addClass('wmp');
    

      $("table.zebra tr:even, div.article table tr:even").addClass("alt");
      $("div.collapser li:even").addClass("alt");
      
      var body = $('body');
      if(body.hasClass('fjarnam')) {
        $('ul.tabs li.tab2 a').trigger('click');
      }
      if(body.hasClass('foreldrar')) {
        $('ul.tabs li.tab3 a').trigger('click');
      }
      if(body.hasClass('nemendur')) {
        $('ul.tabs li.tab4 a').trigger('click');
      }
      
      $('div.topbox div.item').append('<span class="arrow" />');
      
      

      
      
    
      //insert anchors for accordion and collapser
      $('div.accordion div.accbox h3, div.collapser h3, table.collapser caption')
          .wrapInner('<a href="#"></a>')
          .find('a')
              .click(function(e){ e.preventDefault(); });
    
    
      // initialize the accordion widget (on the front page).
      $('div.accordion').accordion({
            header         : 'h3',
            selectedClass  : 'selected',
            autoHeight     : false,
            animation      : 'easeInOut'
        });



      $("div.collapser h3 a").click(function (e) {
          $(this).parent().parent().find("ul, div").slideToggle();
        });
      /*
      $('table.collapser caption a').click(function (e) {
          $(this).parent().parent().find("tbody").slideToggle('normal');
        });

      $('div.graybox h2.boxhead a').click(function (e) {
          $(this).parent().parent().find("div.boxbody").slideToggle('normal')
        });
      */
      
      
      // helper function that trims a html doc for use as jquery object
      /*
      jQuery.cleanDoc = function ( r ) {
        r = r.replace(/<(script).*?<\/\1>/g, '')
             .replace(/\s+/gm, ' ')
  //           .replace(/\s</g, '<')
  //           .replace(/>\s/g, '>');
        r = (r.indexOf('<body') !== -1) ? r.match(/<body[^>]*>([\s\S]*?)<\/body>/)[1] || '': r;
        return jQuery.trim( r ) || "";
      };
      */

      
      
      
      
    }
    
    
    function closePopup() {
      $('div.popup-outer').remove();
    }
  
    // popups
    var popupTemp = $('<div class="popup-outer"><div class="popup-inner"></div></div>'),
        printBtn = $('<a href="javascript:window.print()" class="printBtn">Prenta</a>'),
        closeBtn = $('<a href="#" class="closeBtn">close popup</a>')
                        .bind('click', function(){
                            closePopup();
                            return false;
                        }),
    
        // stundatöflur
        stundatoflur = $('div.stundatoflur');


    if (stundatoflur.length)
    {

      var links = stundatoflur.find('table a');

      links.bind('click', function(){
      
        closePopup();
      
        $.get(this.href, function(data){
        
            var newHTML = $(data).filter('div.cBekkurHeader, table.cTable');
        
            stundatoflur
                .find('div.boxbody')
                    .prepend(newHTML);
          

            popupTemp.css('margin-top', $('html').scrollTop()+'px');
            
            // form the html for the popup
            var popupHeader = '<h3>Stundatafla';
            newHTML.filter('div.cBekkurHeader')
                .each(function(){
                    popupHeader += ' <span>' + $(this).html() + '</span>';
                })
                .remove();
            popupHeader += '</h3>';
            
            // open the popup
            newHTML.filter('table.cTable')
                .wrap(popupTemp)
                .before($(popupHeader))
                .after(closeBtn.clone(true), printBtn)
                .attr({
                  cellspacing: '0',
                  width: '100%'
                })
                .find('tr:odd')
                    .addClass('odd')
                .end()
                .find('td:nth-child(2)')
                    .each(function(){
                        // merge two first columns
                        $(this).prev().html($(this).prev().html() + ' - ' + $(this).html());
                    })
                    .remove();
              
              });
      
          return false; // cancel the redirection
      
        });
          
    }
    
    
    

    // bekkjalistar
    var bekkjalistar = $('div.bekkjalistar');
    
    if(bekkjalistar.length) {
    
        var links = bekkjalistar.find('table a');
        
        links.bind('click', function(){
        
            closePopup();
        
            $.get(this.href, function(data){
            
                var headingtext = $(data).eq(0).find('div.classListHeading').text();
                var table = $(data).eq(0).find('table.classListTable');
                
                var heading = $('<h3>Bekkjalisti <span>' + headingtext + '</span></h3>');
              
                bekkjalistar
                    .find('div.boxbody')
                        .prepend(heading, table);
                
                popupTemp.css('margin-top', $('html').scrollTop()+'px');
              
                bekkjalistar
                    .find('h3, table.classListTable')
                        .wrapAll(popupTemp)
                        .end()
                    .find('div.popup-inner')
                        .append(printBtn, closeBtn.clone(true))
                        .find('tr:odd')
                            .addClass('odd');
            
            });
            
            return false;

        });
      
    }
    
    
    
    // stafflist
    
    var stafflist = $('div.stafflist');
    if (stafflist.length)
    {
  
      $.get('/integration/verslovefur/FrontController.asp?page=employeelist', function(response){
        
          $(response)
              .find('tr')
                  .each(function(i){
                      
                      var head = $(this).find('td.employeeListGroupHeader');
                    
                      if (head.length)
                      {
                        stafflist
                            .find('div.boxbody')
                                .append(
                                    '<div class="accbox">'+
                                      '<h3>' + head.text() + '</h3>'+
                                      '<table class="zebra kennarar" />'+
                                    '</div>'
                                  );
                      } 
                      else 
                      {
                        $(this).find('td:first').addClass('arrow');
                        stafflist.find('div.boxbody table:last').append($(this));
                      }
                    })
                  .filter(':odd')
                      .addClass('alt');
                  
          Req('/bitar/common/personas/loadEmployee.js?v4', function(){
          
              
          
              stafflist.eplicaEmployeeLoader({
                  getUrl: function (link) {
                  
                    var id = $(link).attr('href').split('/');
                    id = id[id.length-1];
                  
                    return '/integration/verslovefur/FrontController.asp?page=cv&id='+id;
                  },
                  getSelector: null,
                  preprocessDom: function (cfg) {
                      var netfangLabel = this.find('.cvPersonalInfo em:contains("Netfang:")')[0];
                      if (netfangLabel)
                      {
                        var netfangNode = netfangLabel.nextSibling;
                        $(netfangNode).replaceWith('<span class="netfang">'+netfangNode.nodeValue+'</span>');
                      }
                    }
                });
            });

                  
                  
          $('div.accordion div.accbox h3')
            .wrapInner('<a href="#"></a>')
            .find('a')
                .click(function(e){ e.preventDefault(); });
                  
          stafflist
              .find('td:last-child')
                  .mailtoEnabler()
              .end()
              .accordion({
                  header         : 'h3',
                  selectedClass  : 'selected',
                  autoHeight     : false,
                  animation      : 'easeInOut'
                });
        });
          
    }
    
    
    
    // classadmins
    
    
    var teachersBox = $('div.teachers div.boxbody');
    
    if(teachersBox.length)
    {
      $.get('/integration/verslovefur/FrontController.asp?page=classadmins', function(response){
      
        teachersBox.append(
            $(response).html()
          );
        
        $('tr:even', teachersBox).addClass('alt');

        $('td:last-child', teachersBox).mailtoEnabler();

        $('td:not(:last-child)', teachersBox).addClass('arrow');
      
      });
      
    }
    

    // Course descriptions
    
    $('div.cdesc').each(function(){

      var cdesc = $(this),
          cdescBody = $('>.boxbody', cdesc),
          bodyAjaxUrl = $('a:first', cdescBody).attr('href'),
          baseUrl = bodyAjaxUrl.split('?')[0];

      cdescBody.load(bodyAjaxUrl, {}, function() {

          $('style', cdescBody).remove();

          $('#department-info-detail').attr('style', '');
          
          $("a", cdescBody).bind("click", function() {
              var thisLink = $(this),
                  ajaxUrl = baseUrl+'?'+this.href.split('?')[1];

              $("#department-info-detail-content").load(ajaxUrl, {}, function() {
                  $("#department-info-detail")
                      .css({
                          top:  parseInt(thisLink.offset().top, 10),
                          left: parseInt(thisLink.offset().left, 10) - 350
                        })
                      .show("slow");
              });
              
              return false;
              
          });
          
          
          cdescBody
              .find('table tbody')
                  .prepend('<tr class="th"><th>Námsgrein</th><th colspan="10">Áfangar</th></tr>');
          
          
          cdescBody
            .find('h2')
            .wrapInner('<a href="#"></a>')
            .map(function(){
              var h = $( this );
              return [
                h.add([
                  h.next('h3')[0], 
                  h.nextAll('table:first')[0]
                ])
              ];
            })
            .wrap( '<div class="collapse"></div>' );
          
          cdescBody
            .find('div.collapse').hide()
            .find('h2').each(function() { $(this).insertBefore( $(this).parent() ) })
            .find('a')
                .bind('click', function() {
                    $(this).blur().parent().next('div.collapse').slideToggle();
                    return false; 
                  });
          

          var tr = cdescBody.find('table tr');
          tr.filter(':even').addClass('alt');
          tr.each(function() {
              if ( $(this).find('td').length > 2 ) {
                $(this).find('td:first').addClass('arrow');
              } else {
                $( this ).find('td').attr('colspan','11').addClass('total');
              }
              $(this).filter(':odd').addClass('alt');
              $(this).find('td').each(function(i) {
                  $(this).addClass('tcol' + (i+1));
                })
            });
            


          $("#department-info-detail-close").bind("click", function(event) {
              $("#department-info-detail").hide("slow");
          });
          
      });
        
    
    });
    

      
 

  
});
