document.getElementsByClassName = function(cl) {
	var retnode = [];
	var myclass = new RegExp('\\b'+cl+'\\b');
	var elem = this.getElementsByTagName('*');
	for (var i = 0; i < elem.length; i++) {
		var classes = elem[i].className;
		if (myclass.test(classes)) retnode.push(elem[i]);
	}
	return retnode;
}; 

function getSpeed(val1, val2) {
	var speed = Math.round(Number((val1 - val2) / 3));
	if (speed > 15) speed = 15;
	if (speed < 1) speed = 1;
	return speed;
}

function buttonMouse(sender, action) {
	var src = String(sender.src);
	var num = Number(src.substr(src.lastIndexOf('_') + 1, 1));
	var act = 0;
	if (num < 2) {
		switch (action) {
			case 'over' : act = 1; break;
			case 'out'  : act = 0; break;
		}
		sender.src = src.substr(0, src.lastIndexOf('_') + 1) + act + src.substr(src.lastIndexOf('_') + 2);
	}
}

function setTab(sender) {
	var ind = sender.id.substr(4);
	var tab = document.getElementById('tab_' + ind);
	if (tab) {
		var con = tab.parentNode;
		for (var i = 0, j = con.childNodes.length; i < j; i++) {
			if (con.childNodes[i].className == 'tab_show') {
				con.childNodes[i].className =  'tab_hide';	
			}			
			if (con.childNodes[i].className == 'link') {
				var tmp = con.childNodes[i].getElementsByTagName('a');
				for (var x = 0, y = tmp.length; x < y; x++) {
					tmp[x].className = '';	
				}
			}
		}
		tab.className  = 'tab_show';
		sender.className = 'active';
	}
}

function newsAction(sender) {
	var con = sender.parentNode;
	if (con.className == 'newsContainer') {
		var tab = document.getElementsByClassName('newsContainer');
		for (var i = 0, j = tab.length; i < j; i++) {
			newsAnimation(tab[i], (tab[i].id == con.id));
		}
	}
}

function newsAnimation(element, show) {
	if (element.interval) window.clearInterval(element.interval);
	for (var i = 0, j = element.childNodes.length; i < j; i++) {
		if (element.childNodes[i].className == 'content') {
			var con = element.childNodes[i];
			for (var x = 0, y = element.childNodes[i].childNodes.length; x < y; x++) {
				if (element.childNodes[i].childNodes[x].className == 'text') {
					var txt = element.childNodes[i].childNodes[x];
				}
			}
		}
	}
	if (con && txt) {
		element.interval = window.setInterval(function () {
			if (show) {				
				if (con.clientHeight >= txt.offsetHeight) {
					con.style.heigh  =  txt.offsetHeight + 'px';
					window.clearInterval(element.interval);
				} else {
					var step = getSpeed(txt.offsetHeight, con.clientHeight);
					con.style.height = (con.clientHeight + step) + 'px';
				}				
			} else {				
				if (con.clientHeight <= 1) {
					con.style.height = '0px';
					window.clearInterval(element.interval);
				} else {
					var step = getSpeed(con.offsetHeight, 1);
					con.style.height = (con.offsetHeight - step) + 'px';
				}
			}			
		}, 50);
	}
}