Locale.use("de-DE");

function pauseAllAudio() {
  as.each(function(element) {
    element.pause();
  })
}

function drawMarker() {
  $$('#marker').destroy();

  var marker = new Element('div', {
    'id': 'marker'
  }).inject($$('div.item.active')[0]);
  (function() {
    marker.addClass('in');
  }).delay(200)

  var r = Raphael($$('.active>div#marker')[0]);
  if (r.length != 0) {
    r.path("M9,0 L9,18 L0,9 Z M9,0").attr({
      stroke: 0,
      fill: "#c4b06b"
    });
  };
}

function drawLogo() {
  var r = Raphael($('logo'));
  if (r.length != 0) {
    r.path("M11.659,45.226c-6.836,0.854-9.462-7.782-4.664-13.845 c2.61-3.317,10.9-7.022,18.682-8.314C21.358,33.913,17.254,44.533,11.659,45.226z M43.505,7.089c0,1.626,1.333,2.945,2.971,2.945 c1.014,0,1.919-0.506,2.453-1.292c0.493-0.56,1.544-2.785,0.426-5.144c-2.132-4.531-10.46-5.997-16.03,2.918c-2.399,3.851-4.557,8.861-6.624,13.978c-8.688,1.08-17.43,5.73-19.361,6.836c-14.818,8.435-3.625,25.651,2.505,26.584 c5.636,0.865,11.327-8.902,16.083-21.4c1.319-3.438,2.532-6.77,3.692-9.887c2.851-0.146,5.477,0.133,7.515,1.013c10.234,4.37,6.611,16.695,0.388,18.801c-5.864,1.973-8.875-3.064-8.609-5.382c0.081-0.734,0.427-1.452,1.132-1.294 c0.213,1.427,1.439,2.52,2.933,2.52c1.653,0,2.971-1.319,2.971-2.946c0-0.546-0.147-1.051-0.4-1.478v-0.041l-0.067-0.08c-0.185-0.279-0.413-0.532-0.692-0.746c-2.798-2.425-7.488-0.426-7.529,3.972c-0.107,12.339,19.15,11.886,19.962-2.345 c0.44-7.823-4.796-14.126-16.669-14.339H30.5c3.304-8.729,6.302-15.444,10.167-17.509c2.798-1.493,5.036-0.88,5.317,0.985 l0.039,0.413C44.599,4.384,43.505,5.61,43.505,7.089z").attr({
      stroke: 0,
      fill: "#332B24"
    });
  };

  r.path("M61,14.957v-1.9h1.7v-0.8c0-0.92,0.286-1.673,0.86-2.26c0.573-0.586,1.44-0.88,2.6-0.88 c0.253,0,0.506,0.01,0.76,0.03c0.253,0.02,0.5,0.037,0.74,0.05v2.12c-0.334-0.04-0.68-0.06-1.04-0.06c-0.387,0-0.664,0.09-0.83,0.27 c-0.167,0.18-0.25,0.483-0.25,0.91v0.62h1.96v1.9h-1.96v8.44H62.7v-8.44H61z").attr({
    stroke: 0,
    fill: "#332B24"
  });
  r.path("M69.06,15.986c0.254-0.673,0.613-1.247,1.08-1.72s1.026-0.84,1.681-1.1c0.652-0.26,1.386-0.39,2.199-0.39s1.551,0.13,2.21,0.39c0.66,0.26,1.224,0.627,1.69,1.1s0.826,1.047,1.08,1.72c0.253,0.674,0.38,1.424,0.38,2.25c0,0.827-0.127,1.574-0.38,2.24c-0.254,0.667-0.613,1.237-1.08,1.71c-0.467,0.474-1.03,0.837-1.69,1.09 c-0.659,0.253-1.396,0.38-2.21,0.38s-1.547-0.126-2.199-0.38c-0.654-0.253-1.214-0.616-1.681-1.09 c-0.467-0.473-0.826-1.043-1.08-1.71c-0.253-0.667-0.38-1.413-0.38-2.24C68.68,17.41,68.807,16.66,69.06,15.986zM71.64,19.446 c0.08,0.394,0.217,0.747,0.41,1.06c0.193,0.313,0.45,0.563,0.771,0.75c0.319,0.187,0.72,0.28,1.199,0.28 c0.48,0,0.884-0.093,1.21-0.28c0.327-0.187,0.587-0.437,0.78-0.75c0.193-0.313,0.33-0.667,0.41-1.06c0.08-0.393,0.12-0.796,0.12-1.21c0-0.413-0.04-0.82-0.12-1.22s-0.217-0.753-0.41-1.06s-0.453-0.557-0.78-0.75 c-0.326-0.193-0.729-0.29-1.21-0.29c-0.479,0-0.88,0.097-1.199,0.29c-0.32,0.193-0.577,0.443-0.771,0.75s-0.33,0.66-0.41,1.06 s-0.12,0.807-0.12,1.22C71.52,18.65,71.56,19.053,71.64,19.446z").attr({
    stroke: 0,
    fill: "#332B24"
  });
  r.path("M84.18,13.057v1.92h0.04c0.133-0.32,0.312-0.617,0.54-0.89c0.227-0.273,0.486-0.506,0.779-0.7 c0.294-0.193,0.606-0.343,0.94-0.45c0.333-0.106,0.68-0.16,1.04-0.16c0.187,0,0.393,0.034,0.62,0.1v2.64c-0.134-0.027-0.294-0.05-0.48-0.07s-0.366-0.03-0.54-0.03c-0.52,0-0.96,0.087-1.319,0.26c-0.36,0.174-0.65,0.41-0.87,0.71c-0.221,0.3-0.377,0.65-0.471,1.05c-0.093,0.4-0.14,0.833-0.14,1.3v4.66h-2.84v-10.34H84.18z").attr({
    stroke: 0,
    fill: "#332B24"
  });
  r.path("M96.521,23.396v-1.44H96.46c-0.359,0.6-0.826,1.033-1.399,1.3s-1.16,0.4-1.76,0.4 c-0.761,0-1.384-0.1-1.87-0.3c-0.487-0.2-0.87-0.483-1.15-0.85c-0.28-0.366-0.477-0.813-0.59-1.34c-0.113-0.526-0.17-1.11-0.17-1.75v-6.36h2.84v5.84c0,0.854,0.133,1.49,0.4,1.91c0.267,0.42,0.739,0.63,1.42,0.63c0.772,0,1.333-0.23,1.68-0.69 s0.521-1.217,0.521-2.27v-5.42h2.84v10.34H96.521z").attr({
    stroke: 0,
    fill: "#332B24"
  });
  r.path("M104.399,13.057v1.4h0.04c0.373-0.533,0.823-0.947,1.351-1.24c0.526-0.293,1.13-0.44,1.81-0.44c0.653,0,1.25,0.127,1.79,0.38c0.54,0.254,0.95,0.7,1.229,1.34c0.307-0.453,0.724-0.853,1.25-1.2c0.527-0.347,1.15-0.52,1.87-0.52c0.547,0,1.054,0.067,1.521,0.2s0.866,0.347,1.2,0.64c0.333,0.293,0.593,0.677,0.779,1.15s0.28,1.043,0.28,1.71v6.92h-2.84v-5.86c0-0.347-0.014-0.673-0.04-0.98c-0.027-0.307-0.1-0.573-0.22-0.8c-0.12-0.227-0.297-0.406-0.53-0.54c-0.233-0.133-0.55-0.2-0.95-0.2 c-0.399,0-0.724,0.077-0.97,0.23c-0.247,0.153-0.44,0.354-0.58,0.6s-0.233,0.527-0.28,0.84c-0.047,0.313-0.069,0.63-0.069,0.95v5.76h-2.841v-5.8c0-0.307-0.007-0.61-0.02-0.91c-0.014-0.3-0.07-0.577-0.17-0.83c-0.101-0.253-0.267-0.457-0.5-0.61s-0.577-0.23-1.03-0.23c-0.134,0-0.31,0.03-0.53,0.09c-0.22,0.06-0.433,0.173-0.64,0.34c-0.207,0.167-0.384,0.407-0.53,0.72 c-0.146,0.313-0.22,0.724-0.22,1.23v6h-2.84v-10.34H104.399z").attr({
    stroke: 0,
    fill: "#332B24"
  });
  r.path("M62.46,36.577c0.293-0.44,0.667-0.794,1.12-1.061c0.453-0.267,0.963-0.457,1.53-0.57s1.137-0.17,1.71-0.17 c0.52,0,1.046,0.037,1.581,0.11c0.533,0.073,1.02,0.217,1.46,0.43c0.439,0.214,0.8,0.511,1.08,0.89c0.279,0.381,0.42,0.884,0.42,1.51v5.381c0,0.467,0.026,0.913,0.08,1.34c0.053,0.427,0.146,0.747,0.279,0.96h-2.88c-0.054-0.16-0.097-0.323-0.13-0.49s-0.057-0.337-0.07-0.51c-0.453,0.467-0.986,0.794-1.6,0.979c-0.613,0.188-1.24,0.28-1.88,0.28c-0.494,0-0.954-0.06-1.38-0.18s-0.8-0.307-1.12-0.56c-0.32-0.254-0.57-0.574-0.75-0.961c-0.18-0.387-0.27-0.846-0.27-1.379 c0-0.588,0.103-1.07,0.31-1.451c0.207-0.379,0.473-0.683,0.8-0.91c0.327-0.227,0.7-0.396,1.12-0.51s0.843-0.203,1.27-0.27c0.426-0.066,0.846-0.12,1.26-0.16c0.413-0.04,0.78-0.1,1.1-0.18s0.573-0.197,0.76-0.35c0.187-0.154,0.273-0.377,0.26-0.67c0-0.307-0.05-0.551-0.149-0.73c-0.101-0.18-0.233-0.32-0.4-0.42s-0.359-0.167-0.58-0.2c-0.22-0.033-0.456-0.05-0.709-0.05c-0.56,0-1,0.119-1.32,0.359c-0.32,0.24-0.507,0.641-0.56,1.2h-2.84C62,37.569,62.167,37.017,62.46,36.577z M68.07,40.587 c-0.181,0.06-0.374,0.109-0.58,0.149c-0.207,0.04-0.424,0.073-0.65,0.101c-0.227,0.026-0.453,0.06-0.68,0.1c-0.213,0.04-0.424,0.094-0.63,0.16s-0.387,0.156-0.54,0.27c-0.154,0.113-0.277,0.258-0.37,0.43c-0.094,0.174-0.14,0.395-0.14,0.66c0,0.254,0.046,0.467,0.14,0.641c0.093,0.174,0.22,0.31,0.38,0.41c0.16,0.1,0.347,0.17,0.56,0.209c0.213,0.041,0.433,0.061,0.66,0.061c0.56,0,0.993-0.093,1.299-0.279c0.307-0.188,0.533-0.41,0.681-0.67 c0.146-0.261,0.236-0.523,0.27-0.791c0.033-0.266,0.05-0.479,0.05-0.64v-1.06C68.4,40.443,68.25,40.526,68.07,40.587z").attr({
    stroke: 0,
    fill: "#332B24"
  });
  r.path("M76.739,31.116v14.28h-2.84v-14.28H76.739z").attr({
    stroke: 0,
    fill: "#332B24"
  });
  r.path("M84.919,35.057v1.899h-2.08v5.121c0,0.479,0.08,0.799,0.24,0.959s0.48,0.24,0.96,0.24 c0.16,0,0.313-0.006,0.46-0.02s0.287-0.033,0.42-0.061v2.2c-0.24,0.04-0.507,0.066-0.8,0.08c-0.293,0.013-0.58,0.021-0.86,0.021 c-0.439,0-0.856-0.031-1.25-0.091c-0.393-0.06-0.739-0.177-1.04-0.35c-0.3-0.173-0.536-0.42-0.71-0.74c-0.173-0.319-0.26-0.739-0.26-1.26v-6.101h-1.72v-1.899h1.72v-3.101h2.84v3.101H84.919z").attr({
    stroke: 0,
    fill: "#332B24"
  });
  r.path("M89.58,42.917c0.427,0.413,1.04,0.619,1.84,0.619c0.573,0,1.066-0.143,1.48-0.43c0.413-0.287,0.666-0.59,0.76-0.91h2.5c-0.4,1.24-1.014,2.127-1.84,2.66c-0.827,0.533-1.827,0.8-3,0.8c-0.813,0-1.547-0.13-2.2-0.39s-1.207-0.63-1.66-1.11c-0.453-0.479-0.804-1.053-1.05-1.72c-0.247-0.666-0.37-1.4-0.37-2.2c0-0.772,0.127-1.493,0.38-2.159c0.253-0.667,0.613-1.244,1.08-1.73s1.023-0.87,1.67-1.15c0.646-0.279,1.363-0.42,2.15-0.42c0.88,0,1.646,0.17,2.3,0.51 s1.189,0.797,1.609,1.37c0.421,0.573,0.724,1.228,0.91,1.96c0.187,0.734,0.254,1.5,0.2,2.301h-7.46 C88.92,41.837,89.153,42.503,89.58,42.917zM92.79,37.477c-0.34-0.373-0.857-0.56-1.55-0.56c-0.454,0-0.83,0.076-1.13,0.229 c-0.301,0.153-0.54,0.343-0.721,0.569c-0.18,0.228-0.307,0.468-0.38,0.721c-0.073,0.254-0.116,0.48-0.13,0.68h4.62 C93.366,38.396,93.13,37.851,92.79,37.477z").attr({
    stroke: 0,
    fill: "#332B24"
  });
  r.path("M106.858,35.057v1.399h0.04c0.373-0.533,0.823-0.946,1.351-1.24c0.526-0.293,1.13-0.439,1.81-0.439 c0.653,0,1.25,0.127,1.79,0.38c0.54,0.254,0.95,0.7,1.229,1.341c0.307-0.453,0.724-0.854,1.25-1.201c0.527-0.346,1.15-0.52,1.87-0.52c0.547,0,1.054,0.066,1.521,0.2s0.866,0.347,1.2,0.64c0.333,0.294,0.593,0.678,0.779,1.15s0.28,1.043,0.28,1.71v6.92h-2.84v-5.86c0-0.346-0.014-0.673-0.04-0.979c-0.027-0.307-0.1-0.573-0.22-0.8s-0.297-0.406-0.53-0.541c-0.233-0.133-0.55-0.199-0.95-0.199c-0.399,0-0.724,0.076-0.97,0.23c-0.247,0.152-0.44,0.354-0.58,0.6s-0.233,0.527-0.28,0.84 c-0.047,0.313-0.069,0.63-0.069,0.95v5.76h-2.841v-5.8c0-0.307-0.007-0.61-0.02-0.91c-0.014-0.3-0.07-0.576-0.17-0.83c-0.101-0.253-0.267-0.457-0.5-0.609c-0.233-0.154-0.577-0.23-1.03-0.23c-0.134,0-0.31,0.029-0.53,0.09c-0.22,0.061-0.433,0.174-0.64,0.34c-0.207,0.167-0.384,0.407-0.53,0.721c-0.146,0.312-0.22,0.723-0.22,1.229v6h-2.84v-10.34 H106.858z").attr({
    stroke: 0,
    fill: "#332B24"
  });
  r.path("M129.479,45.396v-1.44h-0.061c-0.359,0.601-0.826,1.033-1.399,1.301c-0.573,0.266-1.16,0.399-1.76,0.399 c-0.761,0-1.384-0.1-1.87-0.3c-0.487-0.2-0.87-0.482-1.15-0.85s-0.477-0.813-0.59-1.34c-0.113-0.527-0.17-1.11-0.17-1.75v-6.36h2.84v5.84c0,0.854,0.133,1.49,0.4,1.91c0.267,0.42,0.739,0.63,1.42,0.63c0.772,0,1.333-0.23,1.68-0.689 c0.347-0.461,0.521-1.217,0.521-2.271v-5.42h2.84v10.34H129.479z").attr({
    stroke: 0,
    fill: "#332B24"
  });
  r.path("M136.988,42.827c0.127,0.219,0.29,0.399,0.49,0.539c0.2,0.141,0.43,0.244,0.69,0.311c0.26,0.066,0.529,0.1,0.81,0.1c0.2,0,0.41-0.023,0.63-0.07c0.22-0.046,0.42-0.119,0.601-0.22c0.18-0.1,0.329-0.233,0.449-0.399c0.12-0.167,0.181-0.377,0.181-0.631c0-0.426-0.284-0.746-0.851-0.959c-0.566-0.214-1.356-0.428-2.37-0.641c-0.413-0.094-0.816-0.203-1.21-0.33s-0.743-0.293-1.05-0.5s-0.554-0.467-0.74-0.779c-0.187-0.313-0.279-0.697-0.279-1.15 c0-0.667,0.13-1.213,0.39-1.641c0.26-0.426,0.604-0.763,1.03-1.01c0.427-0.246,0.906-0.42,1.439-0.52s1.08-0.15,1.641-0.15c0.56,0,1.103,0.054,1.63,0.16c0.526,0.107,0.996,0.287,1.41,0.54c0.413,0.253,0.756,0.59,1.029,1.01s0.437,0.95,0.49,1.591h-2.7c-0.04-0.547-0.246-0.917-0.62-1.111c-0.373-0.192-0.813-0.289-1.319-0.289c-0.16,0-0.334,0.01-0.521,0.029c-0.187,0.021-0.356,0.064-0.51,0.131s-0.283,0.163-0.39,0.289c-0.107,0.127-0.16,0.297-0.16,0.511c0,0.253,0.093,0.46,0.28,0.62 c0.187,0.16,0.43,0.289,0.729,0.39s0.644,0.19,1.03,0.271s0.78,0.166,1.18,0.26c0.413,0.094,0.816,0.207,1.21,0.34s0.743,0.311,1.05,0.529c0.307,0.221,0.554,0.494,0.74,0.82c0.187,0.327,0.28,0.73,0.28,1.211c0,0.68-0.137,1.25-0.41,1.709c-0.273,0.461-0.63,0.83-1.07,1.11c-0.439,0.28-0.943,0.478-1.51,0.59c-0.566,0.113-1.144,0.17-1.729,0.17c-0.601,0-1.188-0.06-1.761-0.18s-1.083-0.32-1.529-0.601c-0.447-0.279-0.813-0.649-1.101-1.109s-0.443-1.037-0.47-1.73h2.7 C136.799,42.343,136.861,42.606,136.988,42.827z").attr({
    stroke: 0,
    fill: "#332B24"
  });
  r.path("M145.678,33.456v-2.34h2.84v2.34H145.678zM148.518,35.057v10.34h-2.84v-10.34H148.518z").attr({
    stroke: 0,
    fill: "#332B24"
  });
  r.path("M154.117,31.116v7.66l3.58-3.72h3.36l-3.9,3.8l4.34,6.54h-3.439l-2.84-4.62l-1.101,1.061v3.56h-2.84v-14.28 H154.117z").attr({
    stroke: 0,
    fill: "#332B24"
  });
}

function drawCircle() {
  if ($$('.bubble').length) {
    var r = Raphael($$('.bubble')[0]);
    if (r.length != 0) {
      r.circle(65, 65, 65).attr({
        stroke: 0,
        fill: "#c4b06b"
      })

    }
  };
}

function drawPlayControls(type) {
  if ($$('.playStatus').length) {
    var r = Raphael($$('.playStatus ')[0]);
    if (r.length != 0) {
      // r.circle(15, 15, 10).attr({stroke:0,fill: "#c4b06b"})
      r.path("M10,20 C15,20 20,15 20,10 C20,4 15,0 10,0 C4,0 0,4 0,10 C0,15 4,20 10,20").attr({
        stroke: 0,
        fill: "#c4b06b"
      })
      r.path("M8,16 L8,5 L14,10 Z M8,16").attr({
        stroke: 0,
        fill: "#ff0000"
      });

    }
  };
}

function selectEvent(target) {
  $$('.item').removeClass('active');
  target.addClass('active');

  var el = "";
  requestData = new Request.JSON({
    evalResponse: false,
    filter: 'section#content',
    onRequest: function() {
      $$('section#content>article>div').fade('out');
      $$('#marker').destroy();
    },
    onSuccess: function(response) {
      pushHistory(target.getElement('a').get('href'), response.title);
    },
    onComplete: function(response) {
      var singleEvent = Mooml.register('singleEvent', function(response) {
        eventDate = new Date();
        eventDate.parse(response.eventDate);
        h5({
          'class': 'concert'
        },
        response.about);
        h1(response.title);
        div({
          'class': 'bubble'
        })
        div({
          'class': 'teaser'
        },
        span({
          'class': 'day'
        },
        eventDate.format('%a').substr(0, 2)), span({
          'class': 'date'
        },
        span(eventDate.format('%d.%m'))), span({
          'class': 'price'
        },
        response.price));

        div({
          'id': 'contentArea',
          'html': response.content
        });
      });
      el = singleEvent.render(response);

      $$('section#content>article>div')[0].empty().adopt(el);

      (function() {
        drawCircle();
        drawMarker();
        $$('section#content>article>div').fade('in');
      }).delay(250)

    }
  });

  requestData.send({
    url: target.getElement('a').get('href').substr(0, target.getElement('a').get('href').length - 1) + '.json'
  })
}

function pushHistory(state, title) {
  $$('title').set('text', 'forum alte musik - ' + title);
  if (Modernizr.historymanagement) {
    history.pushState('data', title, state);
  };
}

function selectVideo(target) {
  $$('.item').removeClass('active');
  target.addClass('active');

  var el;
  requestData = new Request.JSON({
    evalResponse: false,
    filter: 'section#content',
    onRequest: function() {
      $$('#marker').destroy();
      $$('section#content>article>div').fade('out');
    },
    onSuccess: function(response) {
      // 
    },
    onComplete: function(response) {

      var videoTemplate = Mooml.register('videoTemplate', function(response) {
        h5(response.ensemble);
        h1(response.title);
        div({
          'id': 'videoPlayer'
        },
        iframe({
          'id': 'videoPlayer',
          'width': 450,
          'height': 300,
          'src': response.videoURL,
          'frameborder': 0,
          'allowfullscreen': 'true'
        }))
        div({
          'id': 'contentArea',
          'html': response.content
        });
      });

      el = videoTemplate.render(response);
      $$('section#content>article>div')[0].empty().adopt(el);
      (function() {
        drawMarker();
        $$('section#content>article>div')[0].fade('in');
      }).delay(250)
    }
  });
  pushHistory(target.getElement('a').get('href'));

  requestData.send({
    url: target.getElement('a').get('href').substr(0, target.getElement('a').get('href').length - 1) + '.json'
  })
}

function createSidebarTabs() {
  var tabs = $$('.sidebar.tabs>div>dl>dt');
  if (tabs.length) {
    var tabsContent = $$('.sidebar.tabs>div>dl>dd');
    var tabCaptions = new Array();
    tabs.each(function(tabCaption) {
      tabCaptions.push(tabCaption)
    })

    tabsContainer = new Element('ul', {
      'class': 'tabsContainer clearfix'
    });
    tabs.each(function(tab, index) {
      new Element('li').set('html', "<h5>" + tab.get('text') + "</h5>").inject(tabsContainer).addEvent('click', function(event) {
        var tabIndex = $$('.tabsContainer>li').indexOf(this);
        this.addClass('activeTab').getSiblings().removeClass('activeTab');
        tabsContent.addClass('hidden');
        tabsContent[tabIndex].removeClass('hidden');

      });
    })
    tabsContainer.inject($$('.tabs>div')[0], 'top')
    tabs.destroy()

    // making first tab active
    tabsContainer.getFirst('li').addClass('activeTab');
    tabsContent.addClass('hidden');
    tabsContent[0].removeClass('hidden')

  };
}

function switchToEnsembleTab(ensembleURI, currentTab) {
  var el;

  var ensembleData = new Request.JSON({
    evalResponse: false,
    onComplete: function(response) {
      // pushHistory(ensembleURI, response.title);
      $('ensembleContent').set('html', response.content);

      Mooml.register('audioTemplate', function(response) {
        console.log(response)
        // labels using filenames
        var audioFile = response.path.split('/').getLast().split('--')
        li(
        hr(), a({
          'href': '#',
          'data-src': response.path
        },
        p(
        // labels using filenames
        // strong(audioFile[0]), br(), audioFile[1])), span({
        //   'class': 'playStatus'
        // }))
        // labels using id3 tags
        strong(response.id3.artist), br(), response.id3.album +" - "+ response.id3.title)), span({
          'class': 'playStatus'
        }))
      });

      var sidebarTemplate = Mooml.register('sidebarTemplate', function(response) {
        div(h5('Hörproben'), audio({
          'preload': ''
        }), ul({
          'class': 'playlist'
        },
        Mooml.render("audioTemplate", response.audio)))
      })

      if (response.audio.length != 0) {
        el = sidebarTemplate.render(response);
      } else {
        $$('section.sidebar').fade('out');
      }
      if (el) {
        (function() {
          $$('section.sidebar')[0].empty().adopt(el).fade('in');
          audioPlayer();
        }).delay(250)
      }

      // pushHistory(ensembleURI, response.title);
      // $('ensembleContent').set('html', response.content);
    },
    onSuccess: function(response) {
    },
    onRequest: function() {
      $$('section.sidebar').fade('out');
    }
  });

  var jsonURI = ensembleURI.substr(0, ensembleURI.length - 1) + ".json";

  ensembleData.send({
    url: jsonURI
  })
  var tabIndex = $$('.tabsContainer>li').indexOf(currentTab);
  currentTab.addClass('activeTab').getSiblings().removeClass('activeTab');
}

function createEnsembleTabs() {
  var tabs = $$('article .tabs>div>dl>dt');
  if (tabs.length) {
    var tabCaptions = new Array();
    tabs.each(function(tabCaption) {
      tabCaptions.push(tabCaption)
    })

    tabsContainer = new Element('ul', {
      'class': 'tabsContainer clearfix'
    });
    tabs.each(function(tab, index) {
      contenturl = tab.getElement('a').get('href')
      new Element('li').set('html', '<h5 rel="'+contenturl+'">' + tab.get('text') + "</h5>").inject(tabsContainer).addEvent('click', function(event) {
        event.preventDefault()
        switchToEnsembleTab(event.target.get('rel'), this);
      });
    })
    tabsContainer.inject($$('.tabs>div')[0], 'top')

    // making first tab active
    tabsContainer.getFirst('li').addClass('activeTab');

    if (location.pathname == "/ensembles/") {
      contenturl = tabs[0].getElement('a').get('href')
      switchToEnsembleTab(contenturl, $$('.tabsContainer')[0].getFirst())
    }
    tabs.destroy()
  };
}

function setBodyClass() {
  if (Cookie.read('backgroundClass')) {
    $$('body')[0].addClass(Cookie.read('backgroundClass'));
  } else {
    if (new Date().format('%e') % 2 == 0) {
      $$('body')[0].addClass('laStagioneFrankfurt');
      Cookie.write('backgroundClass', 'laStagioneFrankfurt')
    } else {
      Cookie.write('backgroundClass', 'neumeyerConsort')
      $$('body')[0].addClass('neumeyerConsort');
    }
  }
}

function audioPlayer() {
  var a;
  audiojs.events.ready(function() {
    a = audiojs.createAll({
      imageLocation: '/img/player-graphics.png',
      swfLocation: '/swf/audiojs.swf',
      createPlayer: false
    });

    if ($$('.playlist>li').length) {
      // Load in the first track
      var audio = a[0];
      files = $$('.playlist a').get('data-src');
      audio.load(files[0]);

      // Load in a track on click
      $$('.playlist li').addEvent('click', function(e) {
        e.preventDefault();
        if (this.hasClass('playing')) {
          this.removeClass('playing');
          audio.pause();
        } else {
          this.addClass('playing').getSiblings().removeClass('playing');
          audio.load(this.getChildren('a').get('data-src'));
          audio.play();
        }
      });
    };
  });
}

window.addEvent('load', function() {
  setBodyClass();
})

window.addEvent('domready', function() {

  createSidebarTabs();
  createEnsembleTabs();
  drawLogo();
  drawCircle();

  (function() {
    $$('body').addClass('in')
  }).delay(500)

  var primaryNavItems = $$('#primaryNav a');
  var activePrimaryNavItem = primaryNavItems.get('href').indexOf(location.pathname);
  if (activePrimaryNavItem != -1) {
    primaryNavItems[activePrimaryNavItem].addClass('active');
  };

  var secondaryNavItems = $$('#secondaryNav a');
  var activeSecondaryavItem = secondaryNavItems.get('href').indexOf(location.pathname);
  if (activeSecondaryavItem != -1) {
    secondaryNavItems[activeSecondaryavItem].addClass('active');
  };

  $('switchToNeumeyerConsort').addEvent('click', function() {
    Cookie.write('backgroundClass', 'neumeyerConsort')
    $$('body').removeClass('laStagioneFrankfurt');
    $$('body').addClass('neumeyerConsort');
  })

  $('switchToLaStagioneFrankfurt').addEvent('click', function() {
    Cookie.write('backgroundClass', 'laStagioneFrankfurt')
    $$('body').addClass('laStagioneFrankfurt');
    $$('body').removeClass('neumeyerConsort');
  })

  var links = $$('section.sidebar div.item a').get('href');
  if (links.length != 0) {
    if (links.indexOf(location.pathname) == -1) {
      var itemType = location.pathname.substr(1, 6);
      if (itemType == "videos") {
        selectVideo($$('section.sidebar div.item')[0])
      } else {
        selectEvent($$('section.sidebar div.item')[0])
      }

    } else {
      $$('section.sidebar div.item')[links.indexOf(location.pathname)].addClass('active');
      drawMarker();
    }
  };

  $$('section.sidebar div.item').addEvent('click', function() {
    var itemType = location.pathname.substr(1, 6);
    if (itemType == "videos") {
      selectVideo(this);
    } else {
      selectEvent(this);
    }
  })

  if ($$('section.sidebar div.item').length != 0) {

  };

})

window.addEvent('keydown', function(event) {
  listOfItems = $$('div.item');
  activeElement = $$('div.item.active')[0];
  activeElementIndex = listOfItems.indexOf(activeElement)
  var itemType = location.pathname.substr(1, 6);
  if (event.code == 40) {
    event.preventDefault();
    if (listOfItems.length == activeElementIndex + 1) {
      nextElementIndex = 0;
    } else {
      nextElementIndex = activeElementIndex + 1;
    }
    if (itemType == "videos") {
      selectVideo(listOfItems[nextElementIndex])
    } else {
      selectEvent(listOfItems[nextElementIndex])
    }

  }
  if (event.code == 38) {
    event.preventDefault();
    if (activeElementIndex == 0) {
      nextElementIndex = listOfItems.length - 1;
    } else {
      nextElementIndex = activeElementIndex - 1;
    }
    if (itemType == "videos") {
      selectVideo(listOfItems[nextElementIndex])
    } else {
      selectEvent(listOfItems[nextElementIndex])
    }
  }

  if (event.code == 37) {
    var activeItem = $$('section#nav a.active')[0];
    var menuItems = activeItem.getParent().getSiblings();
    menuItems[$$('section#nav a').indexOf(activeItem) + 1].get('href')
    // console.log()
  }

});
