/**********************************************************************************
 *	@author			:	Torsten Godzisz
 *	@version		:	1.0 build 001
 *	@date			:	2005-06-27
 *	@copyright		:	TOP 21 GmbH
 *
 *	@decription		:	
 *
 *	@hint			:	
 *	@change history	:
 *	2005-06-27	Torsten Godzisz			Document created.
**********************************************************************************/


// global flag
var isIE = isIE();


function isIE() {
	// branch for native XMLHttpRequest object
	if (window.XMLHttpRequest) {
		// branch for IE/Windows ActiveX version
	} else if (window.ActiveXObject) {
		isIE = true;
	}
}


// retrieve text of an XML document element, including
// elements using namespaces
function getElementTextNS(prefix, local, parentElem, index) {
    var result = "";
    if (prefix && isIE) {
        // IE/Windows way of handling namespaces
        result = parentElem.getElementsByTagName(prefix + ":" + local)[index];
    } else {
        // the namespace versions of this method 
        // (getElementsByTagNameNS()) operate
        // differently in Safari and Mozilla, but both
        // return value with just local name, provided 
        // there aren't conflicts with non-namespace element
        // names
        result = parentElem.getElementsByTagName(local)[index];
    }
    if (result) {
        // get text, accounting for possible
        // whitespace (carriage return) text nodes 
        if (result.childNodes.length > 1) {
            return result.childNodes[1].nodeValue;
        } else {
        	// check if title is set
        	if (result.firstChild != null)
        	{
	            return result.firstChild.nodeValue;
			}
        }
    } else {
        return "n/a";
    }
    
	return "n/a";
}

// empty select list content
function clearSelectList(elementID) {
    var select = document.getElementById(elementID);
    while (select.length > 0) {
        select.remove(0);
    }
}

// add item to select element the less
// elegant, but compatible way.
function appendToSelect(select, value, content) {
    var opt;
    opt = document.createElement("option");
    opt.value = value;
    opt.appendChild(content);
    select.appendChild(opt);
}

// fill select list with items from
// the current XML document
function buildSelectList(req, elementID) {
    var select = document.getElementById(elementID);
    var items = req.responseXML.getElementsByTagName("item");
    // loop through <item> elements, and add each nested
    // <title> element to Topics select element
    for (var i = 0; i < items.length; i++) {
        appendToSelect(
        	select, 
			getElementTextNS("", "id", items[i], 0), 
			document.createTextNode(getElementTextNS("", "title", items[i], 0))
		);
    }
    // clear detail display
//    document.getElementById("details").innerHTML = "";
}

// display details retrieved from XML document
/*function showDetail(evt) {
    evt = (evt) ? evt : ((window.event) ? window.event : null);
    var item, content, div;
    if (evt) {
        var select = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
        if (select && select.options.length > 1) {
            // copy <content:encoded> element text for
            // the selected item
            item = req.responseXML.getElementsByTagName("item")[select.value];
            content = getElementTextNS("content", "encoded", item, 0);
            div = document.getElementById("details");
            div.innerHTML = "";
            // blast new HTML content into "details" <div>
            div.innerHTML = content;
        }
    }
}
*/

