// EVENTS page
function goToDate(class) {
  window.location.href = 'events#' + class;
}

$(document).ready(function() {
  if(/johnva.ru\/en\/content\/events/.test(document.documentURI)) {
    var ul = document.getElementById('events-year');
    for (var i = 1; i < ul.childNodes.length; i++)
    {
      ul.childNodes[i].onmouseup = mouseup;
    }
    ul.childNodes[2].style.color = '#FF0000';
    
    var ul2 = document.getElementById('events-month');
    for (var i = 1; i < ul2.childNodes.length; i++)
    {
      ul2.childNodes[i].onmouseover = mouseOverMonth;
      ul2.childNodes[i].onmouseout = mouseOutMonth;
      ul2.childNodes[i].onmouseup = mouseupmonth;
    } 
  }
});

function mouseOverMonth(e) {
  this.childNodes[0].style.display = 'block';
  this.childNodes[1].style.display = 'none';
}

function mouseOutMonth(e) {
  this.childNodes[0].style.display = 'none';
  this.childNodes[1].style.display = 'block';
}

function mouseup(e) {
  var ul = document.getElementById('events-year');
  for (var i = 1; i < ul.childNodes.length; i++)
  {
    ul.childNodes[i].style.color = '#535353';
  } 
  this.style.color = '#FF0000';
}

function mouseupmonth(e) {
  goToDate(getYear() + '-' + this.className);
}

function getYear() {
  var ul = document.getElementById('events-year');
  for (var i = 1; i < ul.childNodes.length; i++)
  {
  var obj = ul.childNodes[i];
    if (obj.style.color == 'rgb(255, 0, 0)' || obj.style.color == '#ff0000') { return obj.innerHTML; }
  } 
}

//~ document.getElementBy

//~ var obj = false;                 // object to drag (if false - nothing to move)
//~ var mouseX, mouseY, mouseButton; // mouse coordinates and pressed button
//~ var date;
//~ var offset;
//~ var x = null; x_old = 0;         // define X coordinate

//~ // onmousedown handler
//~ function mousedown(e){
	//~ // define event (cross browser)
	//~ var evt = e || window.event;
	//~ // set reference to the dragable object
	//~ obj = this;
	//~ // set current mouse position
	//~ if(evt.pageX) { mouseX = evt.pageX; } else { mouseX =  evt.clientX; }
	//~ // and pressed mouse button
	//~ if (evt.which) mouseButton = evt.which;
	//~ else           mouseButton = evt.button;
	//~ // activate onmousemove and onmouseup on document level
	//~ // if left mouse button is pressed
	//~ if (mouseButton == 1){
		//~ document.onmousemove = mousemove;
		//~ document.onmouseup   = mouseup;
	//~ }
	//~ // disable text selection
	//~ return false;
//~ }

//~ // onmousemove handler for document level
//~ // activated after left mouse button is pressed on dragable element
//~ function mousemove(e){
	//~ // define event (FF & IE)
	//~ var evt = e || window.event;
	//~ // set left and top values for dragable element
        //~ if((evt.clientX - mouseX) > 0 && (evt.clientX - mouseX) < document.getElementById('scroll').offsetWidth - 20 ) {
	//~ obj.style.left = (evt.clientX - mouseX) + "px";
        //~ document.getElementById("scrolldate").innerHTML = getDate(document.getElementById('scroll').offsetWidth, obj.style.left);
        //~ document.getElementById('scrolldate').style.left = (evt.clientX - mouseX) + "px";
        //~ }
//~ }

//~ // onmouseup handler
//~ function mouseup(e){
	//~ // if object isn't moved, then not needed any action
	//~ if (x != null){
		//~ obj.style.left = 0;
	//~ }
	//~ // detach onmousemove and onmouseup events
	//~ document.onmousemove = null;
	//~ document.onmouseup   = null;

        //~ goToDate(document.getElementById("scrolldate").innerHTML.replace(' ', '-'));
        
        //~ obj.style.left = 0 + "px";
        //~ document.getElementById('scrolldate').style.left = 0 + 'px';
        //~ document.getElementById("scrolldate").innerHTML = '2009 May';
        
	//~ // recalculate table cells because cell content could change cell dimension 
//~ }

//~ function getDate(len, pos) {
  //~ span = 6;
  //~ selectDate = Math.round((parseInt(pos) / len) * span);
  //~ date = new Date(2009, 4);
  //~ date.setMonth(date.getMonth()- selectDate);
  //~ date.format('YYYY mmmm');
  //~ return date.format('yyyy mmmm');
//~ }

//~ /*
 //~ * Date Format 1.2.3
 //~ * (c) 2007-2009 Steven Levithan <stevenlevithan.com>
 //~ * MIT license
 //~ *
 //~ * Includes enhancements by Scott Trenda <scott.trenda.net>
 //~ * and Kris Kowal <cixar.com/~kris.kowal/>
 //~ *
 //~ * Accepts a date, a mask, or a date and a mask.
 //~ * Returns a formatted version of the given date.
 //~ * The date defaults to the current date/time.
 //~ * The mask defaults to dateFormat.masks.default.
 //~ */

//~ var dateFormat = function () {
	//~ var	token = /d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,
		//~ timezone = /\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,
		//~ timezoneClip = /[^-+\dA-Z]/g,
		//~ pad = function (val, len) {
			//~ val = String(val);
			//~ len = len || 2;
			//~ while (val.length < len) val = "0" + val;
			//~ return val;
		//~ };

	//~ // Regexes and supporting functions are cached through closure
	//~ return function (date, mask, utc) {
		//~ var dF = dateFormat;

		//~ // You can't provide utc if you skip other args (use the "UTC:" mask prefix)
		//~ if (arguments.length == 1 && Object.prototype.toString.call(date) == "[object String]" && !/\d/.test(date)) {
			//~ mask = date;
			//~ date = undefined;
		//~ }

		//~ // Passing date through Date applies Date.parse, if necessary
		//~ date = date ? new Date(date) : new Date;
		//~ if (isNaN(date)) throw SyntaxError("invalid date");

		//~ mask = String(dF.masks[mask] || mask || dF.masks["default"]);

		//~ // Allow setting the utc argument via the mask
		//~ if (mask.slice(0, 4) == "UTC:") {
			//~ mask = mask.slice(4);
			//~ utc = true;
		//~ }

		//~ var	_ = utc ? "getUTC" : "get",
			//~ d = date[_ + "Date"](),
			//~ D = date[_ + "Day"](),
			//~ m = date[_ + "Month"](),
			//~ y = date[_ + "FullYear"](),
			//~ H = date[_ + "Hours"](),
			//~ M = date[_ + "Minutes"](),
			//~ s = date[_ + "Seconds"](),
			//~ L = date[_ + "Milliseconds"](),
			//~ o = utc ? 0 : date.getTimezoneOffset(),
			//~ flags = {
				//~ d:    d,
				//~ dd:   pad(d),
				//~ ddd:  dF.i18n.dayNames[D],
				//~ dddd: dF.i18n.dayNames[D + 7],
				//~ m:    m + 1,
				//~ mm:   pad(m + 1),
				//~ mmm:  dF.i18n.monthNames[m],
				//~ mmmm: dF.i18n.monthNames[m + 12],
				//~ yy:   String(y).slice(2),
				//~ yyyy: y,
				//~ h:    H % 12 || 12,
				//~ hh:   pad(H % 12 || 12),
				//~ H:    H,
				//~ HH:   pad(H),
				//~ M:    M,
				//~ MM:   pad(M),
				//~ s:    s,
				//~ ss:   pad(s),
				//~ l:    pad(L, 3),
				//~ L:    pad(L > 99 ? Math.round(L / 10) : L),
				//~ t:    H < 12 ? "a"  : "p",
				//~ tt:   H < 12 ? "am" : "pm",
				//~ T:    H < 12 ? "A"  : "P",
				//~ TT:   H < 12 ? "AM" : "PM",
				//~ Z:    utc ? "UTC" : (String(date).match(timezone) || [""]).pop().replace(timezoneClip, ""),
				//~ o:    (o > 0 ? "-" : "+") + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4),
				//~ S:    ["th", "st", "nd", "rd"][d % 10 > 3 ? 0 : (d % 100 - d % 10 != 10) * d % 10]
			//~ };

		//~ return mask.replace(token, function ($0) {
			//~ return $0 in flags ? flags[$0] : $0.slice(1, $0.length - 1);
		//~ });
	//~ };
//~ }();

//~ // Some common format strings
//~ dateFormat.masks = {
	//~ "default":      "ddd mmm dd yyyy HH:MM:ss",
	//~ shortDate:      "m/d/yy",
	//~ mediumDate:     "mmm d, yyyy",
	//~ longDate:       "mmmm d, yyyy",
	//~ fullDate:       "dddd, mmmm d, yyyy",
	//~ shortTime:      "h:MM TT",
	//~ mediumTime:     "h:MM:ss TT",
	//~ longTime:       "h:MM:ss TT Z",
	//~ isoDate:        "yyyy-mm-dd",
	//~ isoTime:        "HH:MM:ss",
	//~ isoDateTime:    "yyyy-mm-dd'T'HH:MM:ss",
	//~ isoUtcDateTime: "UTC:yyyy-mm-dd'T'HH:MM:ss'Z'"
//~ };

//~ // Internationalization strings
//~ dateFormat.i18n = {
	//~ dayNames: [
		//~ "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat",
		//~ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"
	//~ ],
	//~ monthNames: [
		//~ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec",
		//~ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
	//~ ]
//~ };

//~ // For convenience...
//~ Date.prototype.format = function (mask, utc) {
	//~ return dateFormat(this, mask, utc);
//~ };