function getElementByClassName(obj, className) {
	for (key in obj.childNodes) {
		if (obj.childNodes[key].className == className) {
			return obj.childNodes[key];
		}
	}

}
function addEventSimple(obj, evt, fn) {
	if (obj.addEventListener)
		obj.addEventListener(evt, fn, false);
	else if (obj.attachEvent)
		obj.attachEvent('on' + evt, fn);
}

function removeEventSimple(obj, evt, fn) {
	if (obj.removeEventListener)
		obj.removeEventListener(evt, fn, false);
	else if (obj.detachEvent)
		obj.detachEvent('on' + evt, fn);
}


function arrayCopy(self) {
	var a = new Array();
	for (var property in self) {
		a[property] = self[property]; //typeof (this[property]) == 'object' ? this[property].clone() : this[property]
	}
	return a;
}
function countObj(obj) {
	var i = 0;
	for (var key in obj) i++
	return i;
}
function maxObj(obj) {
	var i = 0;
	for (var key in obj) i=Math.max(i,key);
	return i;
}
Date.prototype.formatDate = function(timestamp) {
	if (typeof timestamp != "undefined") this.setTime(timestamp + '000');
	var mon = '01 02 03 04 05 06 07 08 09 10 11 12'.split(' ')
	return  ('0' + this.getDate()).match(/..$/) + '/' +
			mon[this.getMonth()] + '/' +
			(""+this.getFullYear()).match(/..$/) + " " +
			('0'+this.getHours()).match(/..$/) + ':' + ('0'+this.getMinutes()).match(/..$/);
}
var oDate = new Date();

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name, def) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return def;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

function getSize(/*int value [, int lang]*/){
	var factor = 1024;
	var prefix = [
					["b","б"],
					["Kb","Кб"],
					["Mb","Мб"],
					["Gb","Гб"],
					["Tb","Тб"],
					["Pb","Пб"],
					["Eb","Еб"],
					["Zb","Зб"],
					["Yb","Йб"],
				 ];

	var lang = 1;
	var input = 0;
				 
	if (arguments.length==1) {
		input = arguments[0];
	} else if (arguments.length==2){
		input = arguments[0];
		lang = arguments[1];
	}

	var i=0;
	for (;input>=factor;input = input/factor, i++);
	
	var dg_after_comma;
	if (input<10) dg_after_comma = 100;
	else if (input<100) dg_after_comma = 10;
	else dg_after_comma = 1;
	
	var sz = Math.round(input*dg_after_comma)/dg_after_comma;
	return (sz+" "+prefix[i][lang]);
}


var EDebug = {
	log : function(data){
		if (window.console && window.console.log) window.console.log(data)
		else alert(data);     
	},
	speed : {
		speedTest_arr : new Object(),
		test : function(testName){
			if (typeof(this.speedTest_arr[testName])=="undefined") this.speedTest_arr[testName] = new Date();
			else {
				var now = new Date();
				return (now.getTime() - this.speedTest_arr[testName].getTime());
			}
			return true;
		}
	}
}

