function getElementsByIdPart(part,tag_name)
{
	var all_elem=document.getElementsByTagName(tag_name);
	var elements;
	elements = new Array();
	var j=0;
	for(i=0; i < all_elem.length; i++ )
		if (all_elem[i].id.match(new RegExp(part)))
		{
			elements[j]=all_elem[i];
			j++;
		}
return elements;
}

function StopEventHandle(evt)
{
	evt = (evt) ? evt : ((window.event) ? event : null);
	if (evt)
		{
			if(window.event)
				evt.cancelBubble=true;
			else
				evt.stopPropagation(); 	
		}	
}

function urlEncodeData(data) {
var query = [];
	if (data instanceof Object) {
		for (var k in data) {
			query.push(encodeURIComponent(k) + "=" + encodeURIComponent(data[k]));
		}	
		return query.join('&');
	} 
	else
	{
		return encodeURIComponent(data);
	}
}

function CheckKeyCode(evt)
{
	evt = (evt) ? evt : ((window.event) ? event : null);
    if (evt) {
       var elem = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
       if (elem) 
       {
           var charCode = (evt.charCode) ? evt.charCode : 
               ((evt.which) ? evt.which : evt.keyCode);
           return charCode;   
       }
    }
}

function getClientWidth()
{
  return document.compatMode=='CSS1Compat' && !window.opera?document.documentElement.clientWidth:document.body.clientWidth;
}
function getClientHeight()
{
  return document.compatMode=='CSS1Compat' && !window.opera?document.documentElement.clientHeight:document.body.clientHeight;
}
function getBodyScrollTop()
{
	return self.pageYOffset || (document.documentElement && document.documentElement.scrollTop) || (document.body && document.body.scrollTop);
}

function getBodyScrollLeft()
{
	return self.pageXOffset || (document.documentElement && document.documentElement.scrollLeft) || (document.body && document.body.scrollLeft);
}
function getClientCenterX()
{
	return parseInt(getClientWidth()/2)+getBodyScrollLeft();
}

function getClientCenterY()
{
	return parseInt(getClientHeight()/2)+getBodyScrollTop();
}

function getElementPosition(elem)
{
    var w = elem.offsetWidth;
    var h = elem.offsetHeight;
	
    var l = 0;
    var t = 0;
	
    while (elem)
    {
        l += elem.offsetLeft;
        t += elem.offsetTop;
        elem = elem.offsetParent;
    }

    return {"left":l, "top":t, "width": w, "height":h};
}
