/*
events AJAX
author: Radovan Paska, http://carnero.cc
*/

var eventNow = '';
var eventNowPos = new Array();
var xmlHttpEvents = createXmlHttp();
var newContent = '';

function showEvent(el, eve) {
  var pos = getAbsPos(el);

  if (eventNow != eve && eventNow != '') {
    var eventLocked = document.getElementById('event-' + eventNow);
    eventLocked.style.display = 'none';
  }

  var eventShow = document.getElementById('event-' + eve);
  eventShow.style.left = (pos[0] - 530) + 'px';
  eventShow.style.top = (pos[1] + 40) + 'px';

  eventShow.style.display = 'block';
}

function hideEvent(el, eve) {
  var pos = getAbsPos(el);

  if (eve != eventNow) {
    if (eventNow != '') {
      var eventLocked = document.getElementById('event-' + eventNow);
      eventLocked.style.left = (eventNowPos[0] - 530) + 'px';
      eventLocked.style.top = (eventNowPos[1] + 40) + 'px';

      eventLocked.style.display = 'block';
    }

    var eventShow = document.getElementById('event-' + eve);
    eventShow.style.display = 'none';
  }
}

function lockEvent(el, eve) {
  var pos = getAbsPos(el);
  
  eventNowPos = pos;

  if (eventNow != '') {
    var day1 = document.getElementById('day-' + eventNow);
    var event1 = document.getElementById('event-' + eventNow);

    day1.style.color = '#AAA';
    event1.style.display = 'none';
  }

  if (eventNow != eve) {
    var day2 = document.getElementById('day-' + eve);
    var event2 = document.getElementById('event-' + eve);

    event2.style.left = (pos[0] - 530) + 'px';
    event2.style.top = (pos[1] + 40) + 'px';

    day2.style.color = '#09F';
    event2.style.display = 'block';
    eventNow = eve;
  } else {
    eventNow = '';
  }
}

function changeMonth(month, year) {
  if (xmlHttpEvents) {
    try {
      xmlHttpEvents.open('GET', 'http://gallery.carnero.cc/calendar.php?date=' + year + '-' + month, true);
      xmlHttpEvents.onreadystatechange = handleCalChange;
      xmlHttpEvents.send(null);
      
      return false;
    } catch(e) {
      alert('Je mi líto, nedaří se načíst zvolený měsíc.');
      return true;
    }
  }
}

function handleCalChange() {
  if (xmlHttpEvents.readyState == 4) {
    if (xmlHttpEvents.status == 200) {
      try {
        var response = xmlHttpEvents.responseText;

        if (response != "") {
          newContent = response;

          fadeOutCal(100);
        }
      } catch(e) {
      }
    }
  }
}

function fadeOutCal(opacity) {
    var calendar = document.getElementById('calbox');
    var nextStep = '';
    opacity = opacity - 10;
    
    if (opacity >= 0) {
        calendar.style.opacity = (opacity / 100);
        calendar.style.filter = 'alpha(opacity = ' + opacity + ')';
        
        nextStep = 'fadeOutCal(' + opacity + ')';
        setTimeout(nextStep, 30);
    } else {
        calendar.style.opacity = '0';
        calendar.style.filter = 'alpha(opacity = 0)';
        calendar.innerHTML = newContent;
        fadeInCal(0);
    }    
}

function fadeInCal(opacity) {
    var calendar = document.getElementById('calbox');
    var nextStep = '';
    opacity = opacity + 10;
    
    if (opacity <= 100) {
        calendar.style.opacity = (opacity / 100);
        calendar.style.filter = 'alpha(opacity = ' + opacity + ')';
        
        nextStep = 'fadeInCal(' + opacity + ')';
        setTimeout(nextStep, 15);
    } else {
        calendar.style.opacity = '1';
        calendar.style.filter = 'alpha(opacity = 100)';
    }    
}