/**
 * Takes a string and returns the same string, leaving only the digits.
 */

    
if (!document.ELEMENT_NODE) {
	document.ELEMENT_NODE = 1;
	document.ATTRIBUTE_NODE = 2;
	document.TEXT_NODE = 3;
	document.CDATA_SECTION_NODE = 4;
	document.ENTITY_REFERENCE_NODE = 5;
	document.ENTITY_NODE = 6;
	document.PROCESSING_INSTRUCTION_NODE = 7;
	document.COMMENT_NODE = 8;
	document.DOCUMENT_NODE = 9;
	document.DOCUMENT_TYPE_NODE = 10;
	document.DOCUMENT_FRAGMENT_NODE = 11;
	document.NOTATION_NODE = 12;
}

document._importNode = function(node, allChildren) {
	/* find the node type to import */
	switch (node.nodeType) {
		case document.ELEMENT_NODE:
			/* create a new element */
			var newNode = document.createElement(node.nodeName);
			/* does the node have any attributes to add? */
			if (node.attributes && node.attributes.length > 0)
				/* add all of the attributes */
				for (var i = 0, il = node.attributes.length; i < il;)
					newNode.setAttribute(node.attributes[i].nodeName, node.getAttribute(node.attributes[i++].nodeName));
			/* are we going after children too, and does the node have any? */
			if (allChildren && node.childNodes && node.childNodes.length > 0)
				/* recursively get all of the child nodes */
				for (var i = 0, il = node.childNodes.length; i < il;)
					newNode.appendChild(document._importNode(node.childNodes[i++], allChildren));
			return newNode;
			break;
		case document.TEXT_NODE:
		case document.CDATA_SECTION_NODE:
		case document.COMMENT_NODE:
			return document.createTextNode(node.nodeValue);
			break;
	}
};
function addRandomSeed(url){
   var rnd = Math.random();

   return url +"&rnd=" + rnd;
}

function leaveDigits(str) {
    var newStr = "";
    var exp = /\d+/g;
    var array;
    while (array = exp.exec(str)) {
        newStr += array.join();
    }
    return(newStr);
}


/**
 * Returns all elements of a given class name.
 */
function getElementsByClassName(oElm, strTagName, strClassName) {
    var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
    var arrReturnElements = new Array();
    strClassName = strClassName.replace(/\-/g, "\\-");
    var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
    var oElement;
    for (var i = 0; i < arrElements.length; i++) {
        oElement = arrElements[i];
        if (oRegExp.test(oElement.className)) {
            arrReturnElements.push(oElement);
        }
    }
    return (arrReturnElements)
}

/**
 * Clears the value of the input field on the first click.
 */
function clearValue(el) {
    el.value = '';
    el.onfocus = '';
}

/**
 * These functions handle adding, clearing, and replacing sections of text on the page.
 */
function addText(el, newID, strText) {
    eSpan = document.createElement("span");
    eSpan.setAttribute("id", newID);
    eSpan.appendChild(document.createTextNode(strText));
    document.getElementById(el).appendChild(eSpan);
}

/*function addTranscript(el, newID, strText, strSpeaker) {
	ep = document.createElement("p");
	ep.setAttribute("id", newID);
	ep.setAttribute("class", newID);
	ep.setAttribute("className", newID);
	
	if ((strSpeaker != "") && ((strSpeaker < curSpeaker) || (strSpeaker > curSpeaker)) )
		{
		curSpeaker = strSpeaker;
		eb = document.createElement("span");
		eb.setAttribute("class", "transcriptName ");
		eb.setAttribute("className", "transcriptName ");
		var formattedSpeaker = new String(strSpeaker + ': ');
		eb.appendChild(document.createTextNode(formattedSpeaker));
		ep.appendChild(eb);
		}

    var div = document.createElement("div");
    div.innerHTML = strText;
    // ep.appendChild(document.createTextNode(strText));
    ep.appendChild(div);
    document.getElementById(el).appendChild(ep);
}*/

function addTranscript(el, newID, node, strSpeaker) {
    node.setAttribute("class", newID);
    node.setAttribute("className", newID);

    if ((strSpeaker != "") && ((strSpeaker < curSpeaker) || (strSpeaker > curSpeaker)))
    {
        curSpeaker = strSpeaker;
        eb = document.createElement("span");
        eb.setAttribute("class", "transcriptName ");
        eb.setAttribute("className", "transcriptName ");
        var formattedSpeaker = new String(strSpeaker + ': ');
        eb.appendChild(document.createTextNode(formattedSpeaker));
        node.insertBefore(eb, node.firstChild);
    }
    document.getElementById(el).appendChild(node);
}

function clearContent(el) {
    nEl = el.cloneNode(false);
    el.parentNode.insertBefore(nEl, el);
    el.parentNode.removeChild(el);
}

function replaceText(el, newID, strText) {
    clearContent(document.getElementById(el));
    addText(el, newID, strText);
}

function replaceTranscript(el, newID, strText, strSpeaker) {
    clearContent(document.getElementById(el));
    curSpeaker = "";
    addTranscript(el, newID, strText, strSpeaker);
}