//*************************************************************************
//***	DOM LIBRARY
//*************************************************************************

//*** GLOBAL VARIABEL
	var blnDOM = false;
	
//*** FUNCTIONS	
	//Advanced dthml check
	if (document.getElementById && document.createElement){
		blnDOM = true;
	}		
	
	//default image switch
	function fjsImgSwitch(id, imgsrc){
		if (blnDOM == true){		
			if (document.getElementById(item)){		
				//Switch image	
				document.getElementById(item).src = imgsrc;			
			}
		}
	}
	
	//Tool, strips away all path info
	function fjsGetFileName(varName) {
		var re = /^.*\/(\S*\.\S*)$/;
		var tmp = new String(varName);
		tmp = tmp.match(re)[1];
			
		return tmp;
	}
	
	//Swap classes for any item
	function fjsSwapClass(strId, class1, class2){
		if (blnDOM == true){			
			//Check if element exists
			if (document.getElementById(strId)){
				//Switch class
				if (document.getElementById(strId).className == class1){
					document.getElementById(strId).className = class2;
				}
				else if(document.getElementById(strId).className == class2){
					document.getElementById(strId).className = class1;
				}
			}
		}
	}
		
	//Change class for any item
	function fjsChangeClass(strId, class1){
		if (blnDOM == true){
			//Check if element exists
			if (document.getElementById(strId)){
				//Change class
				document.getElementById(strId).className = class1;
			}
		}
	}
	
	//Clear input boxes for default data 
	function fjsClearBox(e){			
		e.value = "";
		e.focus();			
	}	
	
	//When IE creates a new element it gives the new element about 84 attributes inherited from IE's default DTD. Oh what fun.
	//And when you try to change an attribute like "class", it actually creates a new attribute so you end up with 2 "class" attributes.
	//So, this function checks your node for a given attribute, if it exists then it changes the attribute value with the one given.
	//If the attribute doesnt exist, it creates a new one and sets its value.
	function fjsToolBox_setAttribute(oNode, strAttribute, strValue) 
	{
		if (oNode.getAttributeNode(strAttribute)) 
		{
			for (var i = 0; i < oNode.attributes.length; i++) {
				var attrName = oNode.attributes[i].name.toUpperCase();
				if (attrName == strAttribute.toUpperCase()) 
				{
					oNode.attributes[i].value = strValue;
				}
			}				
		}
		else {
			//create a new attribute 
			oNode.setAttribute(strAttribute, strValue);
		}
	}

	
	//retrieves content from text nodes
	function fjsToolBox_GetTextNodeContent(n) 
	{			
		var s = '';
		var children = n.childNodes;
		for(var i = 0; i < children.length; i++) 
		{
			var child = children[i];
			if (child.nodeType == 3 /*Node.TEXT_NODE*/) 
			{
				s += child.data;
			}
			else{ 
				s += getTextContent(child);
			}
		}
		return s;
	}	
	
	
	//Removes all content from a Node
	function fjsToolBox_RemoveNodes(oNode)
	{
	    while(oNode.firstChild) 
	    {
	        oNode.removeChild(oNode.firstChild);
        }
	}
	
	if(!document.importNode)
	{
	    document._importNode = function(oNode, bImportChildren)
	    {
		    var oNew;
            var attr;
            
		    if(oNode.nodeType == 1){
			    oNew = document.createElement(oNode.nodeName);
			    /*
			    for(var i = 0; i < oNode.attributes.length; i++){
				    oNew.setAttribute(oNode.attributes[i].name, oNode.attributes[i].value);
			    }
			    */
			    for (var i = 0; i < oNode.attributes.length; i++)
                {
                    attr = oNode.attributes[i];
                    if (attr.nodeValue != null && attr.nodeValue != '')
                    {
                        //oNew.setAttribute(attr.name, attr.nodeValue);
                        fjsToolBox_setAttribute(oNew, attr.name, attr.nodeValue);
                    }
                }
			    oNew.style.cssText = oNode.style.cssText;
		    } else if(oNode.nodeType == 3){
			    oNew = document.createTextNode(oNode.nodeValue);
		    }
    		
		    if(bImportChildren && oNode.hasChildNodes()){
			    for(var oChild = oNode.firstChild; oChild; oChild = oChild.nextSibling){
				    oNew.appendChild(document._importNode(oChild, true));
			    }
		    }
		        		
		    return oNew;
	    }
    }
