// Display calendar widget
$(function() {

  if ($("#calendar").length) {

    // Danish localization
    $.tools.dateinput.localize("da", {
      months:    'januar,februar,marts,april,maj,juni,juli,august,september,oktober,november,december',
      shortDays: 'Søn,Man,Tirs,Ons,Tors,Fre,Lør'
    });

    var language = $("#calendar").attr("class");

    // initialize dateinput
    $("#datehelper").dateinput( {
      lang: language,
      firstDay: 1,
      value: 'Today',
      // disallow closing the calendar
      onHide: function()  {
        return false;
      }
    }).data("dateinput").show();

    // Remove absolute positioning
    $("#calroot").removeAttr("style");
    $("#calendar").replaceWith($("#calroot"));

    // Hide events and show on calendar navigation
    function showevents() {
      $(".teaser ol.vcalendar li").hide();
      var month = $("#caltitle").text();
      var events = $(".teaser ol.vcalendar li[title*='" + month + "']");
      var days = [];
      // Show the events in the list
      events.show();
      // Mark the events in the calendar
      events.each(function() {
        var dtstart = Number($(this).find("abbr.dtstart").text().split('/')[0]);
        var dtend = Number($(this).find("abbr.dtend").text().split('/')[0]);
        var inCurrentMonth =  $(this).attr("title").indexOf(month) === 0;
        if(dtend > dtstart) {
          var diff = Math.abs(dtend - dtstart);
          for(i = 1; i <= diff; i++) {
            days.push(dtstart + i);
          };
        } else if(dtend > 0 && dtend < dtstart) {
          if(inCurrentMonth) {
            for(i = dtstart; i <= 31; i++) {
              days.push(i);
            };
          } else {
            for(i = 1; i <= dtend; i++) {
              days.push(i);
            };
          }
        }
        if(inCurrentMonth) {
          days.push(dtstart);
        }
      });
      $.each(days, function(index, value) {
        $(".calweek a[href='#" + value + "'][class!='caloff']").addClass("hasevent");
      });
    };
    showevents();
    $('#calprev, #calnext').click(function() {
      showevents();
    });

  }

  // Show dataTable
  $('#statstable').dataTable({
    "oLanguage": {
      "sUrl": "/scripts/language/"+$('#lang').html()+".txt"
    }
  });

  // Video lightbox
  $(window).load(function() {
    var speed=300;
    var vidWidth = 640;
   	var vidHeight = 390;

    $('a[href*="youtube.com/watch"]').click(function() {
      $('#lightbox').remove(); // Remove earlier instances
      var lightbox = $('<div id="lightbox" />');
      var txt = $(this).attr('href').match(/(?:v=)([\w\-]+)/g);
      var inner = $('<div id="lightboxInner" />');
      var close = $('<a href="#" id="lightboxClose">X</a>');
      close.click(function() {
        $(inner).hide();
        $(lightbox).fadeOut(speed, function() {$(this).remove();});
        return false;
      });
      inner.append(close);
      var obj = '<object width="' + vidWidth + '" height="' + vidHeight + '">' +
	        	  '<param name="movie" value="http://www.youtube.com/v/[vid]?version=3">' +
	        	  '</param><param name="allowFullScreen" value="true"></param><param ' +
	        	  'name="allowscriptaccess" value="always"></param><em' +
	        	  'bed src="http://www.youtube.com/v/[vid]?version=3" ' +
	        	  'type="application/x-shockwave-flash" allowscriptaccess="always" ' +
	        	  'allowfullscreen="true" width="' + vidWidth + '" ' + 'height="' +
	        	  vidHeight + '"></embed></object> ';
	    inner.append(obj.replace(/\[vid\]/g, txt[0].replace('v=','')));
      lightbox.append(inner);

      $('body').append(lightbox);
/*
      lightbox.click(function() {
        $(inner).hide();
        $(this).fadeOut(speed, function() {$(this).remove();});
      });
      */
      lightbox.fadeIn(speed);
      
      return false;
    });
  });
});

