/*
	FILENAME: jsweld.wcDOM.js
	AUTHOR: Philip Siedow-Thompson (psiedow@co.weld.co.us)
	WRITTEN: 4/2/2009
	REVISIONS: none
	DEPENDENCIES: none
*/


		/* 
			FUNCTION:
			DESCRIPTION:
			ARGUMENTS:
			RETURNS:
		*/

var jsweld;
	jsweld = (jsweld)?jsweld:{};
	
	/*------------------------------------------------------------------------------------
		jsweld.wcDOM - 
	--------------------------------------------------------------------------------------*/
	jsweld.wcDOM = {};
	jsweld.wcDOM.isEventHandler = function(inAttr)
		{
			var eventNames = "onclick,ondblclick,onkeydown,onkeypress,onkeyup,onmousedown,onmousemove,onmouseout,onmouseover,onmouseup,onsubmit,onload";
			if(eventNames.indexOf(inAttr)==(-1)) return false;
				else return true;
		}
	jsweld.wcDOM.createNode = function(inElement,inText) 
		{var tNode = document.createElement(inElement);
		 	 tNode.appendChild(document.createTextNode(inText));
		 return tNode;}
	jsweld.wcDOM.clearNode = function(inNode)
		{
			while(inNode.lastChild)
			{
				inNode.removeChild(inNode.lastChild);	
			}
		}
	jsweld.wcDOM.createFromObject = function(inObj)
		{
			var retNode = null;
			try
			{
				
			if(inObj.element || inObj.node)
				{
					if(!inObj.node)
					{
						try
						{
							if(inObj.attributes.name) 
							{	
								var eStr = '<' + inObj.element + '  name="' + inObj.attributes.name + '">';
								retNode = document.createElement(eStr);
							}
							else retNode = document.createElement(inObj.element);
						}
						catch(e){retNode = document.createElement(inObj.element);}
					}
					else
					{
						retNode = inObj.node;	
					}
					if(inObj.text)retNode.appendChild(document.createTextNode(inObj.text));
					if(inObj.inner)
					{
						try{retNode.innerHTML = inObj.inner;}
						catch(e)
						{}
					}	
					if(inObj.attributes)
					{
						for(var attr in inObj.attributes)
							{
								if(!jsweld.wcDOM.isEventHandler)retNode.setAttribute(attr, inObj.attributes[attr]);
								else retNode[attr] = inObj.attributes[attr];
							}
					}
					if(inObj.children)
					{
						for(var i=0; i<inObj.children.length; i++)
							{
								retNode.appendChild(jsweld.wcDOM.createFromObject(inObj.children[i]));
							}
					}
				}
			}
			catch(e){}
			if(!inObj.element && inObj.text)
				{
					retNode = document.createTextNode(inObj.text);	
				}
			return retNode;
		}
