function addEvent (obj, event, func)
{
	if(!obj)return;
	if (obj.addEventListener)
		obj.addEventListener(event, func, false);
	else
		obj.attachEvent('on' + event, func);
}

function asInt(str)
{
	return parseInt(str,10);
}

function elementHasClass(el,className)
{
	if(!className)return true;
	var classes=el.className.toLowerCase().split(/ +/);
	for(var j=0;j<classes.length;j++){
		if(classes[j]==className){
			return true;
		}
	}
	return false;
}

function forEachElement(elName,className,func)
{
	var tn;
	if(className)
		className=className.toLowerCase();
	tn=document.getElementsByTagName(elName);
	for(var i=0;i<tn.length;i++){
		if(elementHasClass(tn[i],className))func(tn[i]);
	}

}

function make_request(page,resfun){
	return make_request_post(page,resfun,null);
}

function make_request_post(page,resfun,postdata)
{
	var httpReq;
	if (window.ActiveXObject) {
		httpReq = new ActiveXObject("Microsoft.XMLHTTP");
	} else {
		httpReq = new XMLHttpRequest();
	}
	httpReq.open((postdata==null)?"GET":"POST",page,true);
	httpReq.onreadystatechange = function() {result_request(httpReq,resfun);}
	if(postdata!=null){
		httpReq.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
		httpReq.setRequestHeader("Content-Length",postdata.length);
		httpReq.setRequestHeader("Connection","close");
	}
	httpReq.send(postdata);
	return httpReq;
}

function result_request(httpReq,resfun)
{
	if(httpReq.readyState == 4){
		if(httpReq.status == 200){
			resfun(httpReq.responseText);
		}
	}
}

function cancelEvent(ev)
{
	if(ev.stopPropagation) ev.stopPropagation();
	if (ev.preventDefault) ev.preventDefault();
	ev.returnValue=false;
}

function insertAfter(y,x)
{
	var par = x.parentNode;
	if(par.lastchild == x){
		par.appendChild(y);
	}else{
		par.insertBefore(y,x.nextSibling);
	}
}

