function stripSpace(str){
	return str.replace(/ /g,'');
}

function trace(msg){
	window.alert(msg);
}

//shortcuts to document.createElement c["elementName"]()
function cbr()
{
	return  document.createElement("BR");
}

function ctext(caption)
{
	return document.createTextNode(caption);
}

function cdiv()
{
	return document.createElement("DIV");
}

function ctable(r, c)
{
	if(!r || !c)
		return document.createElement("TABLE");
	else if(r && !c)
	{
		c = 1;
	}
	
	var table  = document.createElement("TABLE");
	var tableBody = ctbody();
	
	for(var i = 0; i < r; i++)
	{
		var tr = ctr();
		tableBody.appendChild(tr);
		
		for(var j = 0; j < c; j++)
		{
			tr.appendChild(ctd());
		}
	}

	table.appendChild(tableBody);

	return table;
}

function ctr()
{
	return document.createElement("TR");
}

function ctd()
{
	return document.createElement("TD");
}

function ctbody()
{
	return document.createElement("TBODY");
}

function cButton(lablel)
{
	return document.createElement("Button");
}
function cinput(_type)
{
	var newInput = document.createElement("INPUT");
	newInput.type = _type;
	return newInput;
}

function cimg(src)
{
	var img =  document.createElement("IMG");
	img.src = src;
	return img;
}

//shortcut for getElementById
function byId(id)
{
	return document.getElementById(id);
}

//shortcut for getElementsByTagName
function byTagName(tagName, elem)
{
	if(!elem)
		elem = document;
	return elem.getElementsByTagName(tagName);
}

function getSelected(id)
{
	var sel = byId(id);
	
	for(var i = 0; i < sel.options.length; i++)
	{
		if(sel.options[i].selected)
		{
			return sel.options[i].text;
		}
	}
	
	return null;
}

function getStyle(el,styleProp)
{
	var x = document.getElementById(el);
	if (x.currentStyle)
		var y = x.currentStyle[styleProp];
	else if (window.getComputedStyle)
		var y = document.defaultView.getComputedStyle(x,null).getPropertyValue(styleProp);
	return y;
}

function checkExist(el)
{
	return document.getElementById(el);
}

function addEvent(obj,type,fn) {
	if (obj.addEventListener) {
		obj.addEventListener(type,fn,false);
		return true;
	} else if (obj.attachEvent) {
		obj['e'+type+fn] = fn;
		obj[type+fn] = function() { obj['e'+type+fn]( window.event );}
		var r = obj.attachEvent('on'+type, obj[type+fn]);
		return r;
	} else {
		obj['on'+type] = fn;
		return true;
   }
}

function removeEvent(obj, evType, fn, useCapture){
  if (obj.removeEventListener){
    obj.removeEventListener(evType, fn, useCapture);
    return true;
  } else if (obj.detachEvent){
    var r = obj.detachEvent("on"+evType, fn);
    return r;
  } else {
    alert("Handler could not be removed");
  }
} 