
function getObj(name)
{
  if (document.getElementById)
  {
  	return document.getElementById(name);
  }
  else if (document.all)
  {
		return document.all[name];
  }
  else if (document.layers)
  {
		return getObjNN4(document,name);
  }
	else return false;
}

function getObjNN4(obj,name)
{
	var x = obj.layers;
	var foundLayer;
	for (var i=0;i<x.length;i++)
	{
		if (x[i].id == name)
		 	foundLayer = x[i];
		else if (x[i].layers.length)
			var tmp = getObjNN4(x[i],name);
		if (tmp) foundLayer = tmp;
	}
	return foundLayer;
}



function url_encode(str) {
	var result = "";
	
	/*for (i = 0; i < str.length; i++) {
		if (str.charAt(i) == " ") result += "+";
		else result += str.charAt(i);
	}
	*/
	result = escape(str);
	result = result.replace(/\+/g, "%2B");
	result = result.replace(/%20/g, "+");
	return result;
}

function url_decode(str) {

 	var result = str.replace(/\+/g, " ");
	
	return  unescape(result);
}

function logit_atts(obj, indent)
{
	if(!indent)
		indent = "";
	if(!obj.attributes)
		return;
	var num = obj.attributes.length;
	logit(indent + "It has " + num + " attributes and they are:", false);
	for(var x = 0; x < num; x++)
	{
		logit(indent + obj.attributes[x].name + ": " + obj.attributes[x].value, false);
	}
}

function inspect(object, indent)
{
	if(!indent)
		indent = "";

	logit(indent + "Inspecting " + object.tagName);
	logit_atts(object, indent);
	if(object.hasChildNodes)
	{
		for(var x = 0; x < object.childNodes.length; x++)
		{
			inspect(object.childNodes[x].firstChild, indent + "  ");
		}
	}
}


function logit(message, overwrite)
{
	if(overwrite) debug_viewer.value = message + "\n";
	else debug_viewer.value += message + "\n";
		
}



