

// Wrapper functions for DOM

//Removed from this file, use prototype1.4
/*function $(objectId)
{	
	//return getObject(objectId);
	alert("deprecated");
}*/
// Get an object by id
function getObject(objectId)
{
  if (document.getElementById)
  {
    return document.getElementById(objectId);
  }
  else if (document.all)
  {
    return document.all(objectId);
  }
  else if (document.layers)
  {
    return document.layers[objectId];
  }
  else
  {
    return null;
  }   
}

// Get style of an object
function getStyleObject(objectId)
{
  if (document.getElementById && document.getElementById(objectId))
  {
		return document.getElementById(objectId).style;
  }
  else if (document.all && document.all(objectId))
  {
		return document.all(objectId).style;
  }
  else if (document.layers && document.layers[objectId])
  {
    return document.layers[objectId];
  }
  else
  {
    return false;
  }   
}

// Change display of an object
function changeObjectDisplay(objectId, newDisplay)
{
  var styleObject = getStyleObject(objectId);
  
  if (styleObject)
  {
    styleObject.display = newDisplay;
    return true;
  }
  else
  {
    return false;
  }
}

// Set an object 'editable'
function setEditable(objectId, editable)
{
	var object = getObject(objectId);
  if (object)
  {
    // use 'readonly' or 'disabled' depending on type of input field
    var tagName = object.tagName.toLowerCase();
    if (tagName == 'input' || tagName == 'textarea') 
    {
      if (tagName == 'input' && object.type && (object.type.toLowerCase() == 'radio' || object.type.toLowerCase() == 'checkbox'))
      {
        if (!editable)
          object.setAttribute("disabled",!editable);
        else
          object.removeAttribute("disabled");
          
      }
      else      
      {
				if(editable)
					object.removeAttribute("readOnly");
				else
					object.setAttribute("readOnly",!editable);        
      }        
    }
    else
    {
      if (!editable)
        object.setAttribute("disabled",!editable);
      else
        object.removeAttribute("disabled");
    }
    return true;
  }
  else
  {
    return false;
  }
}


function setCursor(id,c)
{
	if (document.all || id != "body") // IE
	{
		var s = getStyleObject(id)
		try
		{
			if (s && s.cursor)
			{
				s.cursor = c;
			}
		}
		catch (e)
		{
			alert(e);
		}		
	}
	else
	{
		document.body.style.cursor = c;
	}
}

/**
Function for creating dom elements. 
*/
function dom(/*string*/ elementName, /*string*/text, /*array*/childNodes, /*node*/parent)
{
	var element = document.createElement(elementName);
	
	if(text && text != null)
	{
		var t = document.createTextNode(text);
		element.appendChild(t);
	}
	
	if(childNodes && childNodes != null)
	{
		try
		{
			if( childNodes.length )
			{
				for(var i=0; i < childNodes.length; i++)
				{
					element.appendChild(childNodes[i]);
				}
			}
			else
			{
				element.appendChild(childNodes);
			}
		}
		catch(e)
		{
			throw "Invalid child node " + childNodes[i];
		}
	}
	
	if( parent && parent != null )
	{
		parent.appendChild(element);
	}
	
	return element;
}