var useNs;

if (useNs)
{
	if (typeof($) == "undefined")
		$ = {}
	_ = $;
}
else
{
	_ = this;
}


if (typeof(_.DOM) == "undefined")
	_.DOM = {}

_.DOM.createElement = function ( type, attr, cont, html ) {
	var ne = document.createElement( type );
	if (!ne)
		return false;
		
	for (var a in attr)
		ne[a] = attr[a];
		
	if (typeof(cont) == "string" && !html)
		ne.appendChild( document.createTextNode(cont) );
	else if (typeof(cont) == "string" && html)
		ne.innerHTML = cont;
	else if (typeof(cont) == "object")
		ne.appendChild( cont );

	return ne;
	}

_.DOM.clearElement = function ( id ) {
	var ele = this.getElement( id );
	
	if (!ele)
		return false;
	
	while (ele.childNodes.length)
		ele.removeChild( ele.childNodes[0] );
	
	return true;
	}

_.DOM.removeElement = function ( ele ) {
	var e = this.getElement(ele);
	
	if (!e)
		return false;
	else if (e.parentNode.removeChild(e))
		return true;
	else
		return false;
	}

_.DOM.replaceContent = function ( id, cont, html ) {
	var ele = this.getElement( id );
	
	if (!ele)
		return false;
	
	this.clearElement( ele );
	
	if (typeof(cont) == "string" && !html)
		ele.appendChild( document.createTextNode(cont) );
	else if (typeof(cont) == "string" && html)
		ele.innerHTML = cont;
	else if (typeof(cont) == "object")
		ele.appendChild( cont );
	}

_.DOM.getElement = function ( ele ) {
	if (typeof(ele) == "undefined") {
		return false;
		}
	else if (typeof(ele) == "string") {
		var re = document.getElementById( ele );
		if (!re)
			return false;
		else if (typeof(re.appendChild) != "undefined" ) {
			return re;
		} else {
			return false;
		}
	}
	else if (typeof(ele.appendChild) != "undefined")
		return ele;
	else
		return false;
	}

_.DOM.appendChildren = function ( id, arr ) {
	var ele = this.getElement( id );
	
	if (!ele)
		return false;
		
	if (typeof(arr) != "object")
		return false;
		
	for (var i=0;i<arr.length;i++) {
		var cont = arr[i];
		if (typeof(cont) == "string")
			ele.appendChild( document.createTextNode(cont) );
		else if (typeof(cont) == "object")
			ele.appendChild( cont );
		}
	}

_.DOM.createSelect = function ( attr, opt, sel ) {
	var select = this.createElement( 'select', attr );
	for (var a in opt) 	{	
		var o = {id:a};
		if (a == sel)	o.selected = "selected";
		select.appendChild( this.createElement( 'option', o, opt[a] ) );		
		}
	return select;
	}

_.DOM.getPos = function ( ele ) {
	var ele = this.getElement(ele);

	var obj = ele;

	var curleft = 0;
	if (obj.offsetParent) {
		while (obj.offsetParent) {
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
			}
		}
	else if (obj.x)
		curleft += obj.x;

	var obj = ele;
	
	var curtop = 0;
	if (obj.offsetParent) {
		while (obj.offsetParent) {
			curtop += obj.offsetTop
			obj = obj.offsetParent;
			}
		}
	else if (obj.y)
		curtop += obj.y;

	return {x:curleft, y:curtop}
	}