﻿// encoding: utf-8
/*@cc_on/*@if(@_jscript_version<5.7)try{document.execCommand('BackgroundImageCache',0,1)}catch(e){}/*@end@*/

Req.localPath  = Req.localPath || '/skin/basic/';
Req(
  'eutils',
  'fontsizer',
  'mailtoenabler',
  'autovalidate',
  'labelizor',
  'x/cookie',
  'x/easing',
  'x/ui-accordion 1.7',
  'tabswitcher',

  function(){

    var $ = jQuery;


    $('body.kynning').Req( Req.localPath + 'design/kynning/kynning.js' );

    $('form').autoValidate(); // validate all forms
    
    $('div.pagestyle').fontsizer();

    if ($('body').hasClass('home')) {
      $('ul.tabs').tabSwitcher();
    }
    else {
      $('ul.tabs').tabSwitcher({showFirst: false}); // collapse on other than .home  
    }
    
    $('#qstr').labelizor();


    if ( !window.EPLICA_loggedin )
    {
            
      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" />'); disabled in 2011 look

    
      //insert anchors for accordion and collapser
      $('div.accordion div.accbox h3, div.collapser h3, table.collapser caption')
          .wrapInner('<a href="#" />')
          .find('a')
              .bind('click', function(e){ e.preventDefault(); });

    
      // initialize the accordion widget (on the front page).
      $('div.accordion')
          .accordion({
              header         : 'h3',
              selectedClass  : 'selected',
              autoHeight     : false,
              animated       : 'easeInOutQuad'
            });



      $("div.collapser h3 a")
          .bind('click', function (e) {
              $(this).parent().parent().find("ul, div").slideToggle();
            });
      /*
      $('table.collapser caption a')
          .bind('click', function (e) {
              $(this).parent().parent().find("tbody").slideToggle('normal');
            });

      $('div.graybox h2.boxhead a')
          .bind('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 ) || "";
      };
      */

      
    } // end of EPLICA_loggedin
    
    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[0])
    {
  
      $.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="#"/>')
              .find('a')
                  .bind('click', function(e){ e.preventDefault(); });
                  
          stafflist
              .find('td:last-child')
                  .mailtoEnabler()
              .end()
              .accordion({
                  header         : 'h3',
                  selectedClass  : 'selected',
                  autoHeight     : false,
                  animated       : 'easeInOutQuad'
                });
        });
          
    }
    
    
    
    // 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 = cdesc.find('>.boxbody'),
          bodyAjaxUrl = cdescBody.find('a:first').attr('href'),
          baseUrl = bodyAjaxUrl.split('?')[0];

      cdescBody.load(bodyAjaxUrl, {}, function() {

          cdescBody.find('style').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() {
                  var offs = thisLink.offset();
                  $("#department-info-detail")
                      .css({
                          top:  parseInt(offs.top, 10) - 100,
                          left: 80
                        })
                      .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(i, h2) {
                          $(h2).insertBefore( $(h2).parent() );
                        })
                      .find('a')
                          .bind('click', function() {
                              $(this)
                                  .trigger('blur')
                                  .parent()
                                      .toggleClass('collapse-open')
                                      .next('div.collapse')
                                          .slideToggle();
                              return false; 
                            });
          

          cdescBody.find('table tr')
              .filter(':even')
                  .addClass('alt')
              .end()
              .each(function() {
                  var tds = $(this).find('td');
                  if ( tds.length > 2 ) {
                    tds.eq(0)
                        .addClass('arrow');
                  } else {
                    tds
                        .attr('colspan','11')
                        .addClass('total');
                  }
                  tds
                      .each(function(i) {
                          $(this).addClass('tcol' + (i+1));
                        })
                });
            


          $("#department-info-detail-close")
              .bind("click", function(event) {
                  $("#department-info-detail").hide("slow");
                });
          
      });
        
    
    });
    

 

  
});

