var isIE = false;	// global flag
var req; 			// global request and XML document objects
var app = 1; 		// app: 1. mitarbeiter, 2. newsticker
var rand = 1; 		// rand: 1. random, 2. liste, 3 beides
var lang = 1; 		// rand: 1. random, 2. liste, 3 beides

// retrieve XML document (reusable generic function);
function loadXML(url,r) { 
	if (r > 1) { rand = r; }
   // branch for native XMLHttpRequest object
	if (window.XMLHttpRequest) {
		req = new XMLHttpRequest();
		req.onreadystatechange = processReqChange;
		req.open("GET", url, true);
		req.send(null);
	// branch for IE/Windows ActiveX version
	} else if (window.ActiveXObject) {
		isIE = true;
		req = new ActiveXObject("Microsoft.XMLHTTP");
		if (req) {
			req.onreadystatechange = processReqChange;
			req.open("GET", url, true);
			req.send();
		}
	}
}

// handle onreadystatechange event of req object
function processReqChange() { // rand: 1. random, 0. liste
	// only if req shows "loaded"
	if (req.readyState == 4) {
		// only if "OK"
		if (req.status == 200) {
			if (app == 1) {
				if (rand == 1 || rand == 3) { writeRandom(); }
				if (rand == 2 || rand == 3) { writeList(); }
			}
		} else {
			/* alert("There was a problem retrieving the XML data:\n" + req.statusText); */
		}
	}
}

function loadXMLright(url) { 
   // branch for native XMLHttpRequest object
	if (window.XMLHttpRequest) {
		req = new XMLHttpRequest();
		req.onreadystatechange = processReqChangeRight;
		req.open("GET", url, true);
		req.send(null);
	// branch for IE/Windows ActiveX version
	} else if (window.ActiveXObject) {
		isIE = true;
		req = new ActiveXObject("Microsoft.XMLHTTP");
		if (req) {
			req.onreadystatechange = processReqChangeRight;
			req.open("GET", url, true);
			req.send();
		}
	}
}

// handle onreadystatechange event of req object
function processReqChangeRight() { // rand: 1. random, 0. liste
	// only if req shows "loaded"
	if (req.readyState == 4) {
		// only if "OK"
		if (req.status == 200) {
			writeNews();
			loadXML('/fr/_app/mitarbeiter/mitarbeiter.xml?i' + randrang, 1);
		} else {
			/* alert("There was a problem retrieving the XML data:\n" + req.statusText); */
		}
	}
}

// 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 
        result = parentElem.getElementsByTagName(local)[index];
    }
    if (result) {
        // get text, accounting for possible whitespace text nodes 
        if (result.childNodes.length > 1) {
            return result.childNodes[1].nodeValue;
        } else {
		if (result.firstChild) { return result.firstChild.nodeValue; } else { return ''; } 
	}
    } else {
        return "n/a";
    }
}


function createDivObject(type, object, content, clss, this_style) {
	var d1 = object;
	// alert(d1.id);
	var d2 = document.createElement(type);
	if (clss.length > 0) { d2.className=clss; }
	if (this_style) { for (i in this_style) { d2.style[i] = this_style[i]; }}
	d2.innerHTML = content;
	d1.appendChild(d2);
	return d2;
}

// generate list
function writeList() {
	var items = req.responseXML.getElementsByTagName("item");
	var mitarb = document.getElementById("mitarbeiter"); 
	for (var i = 0; i < items.length; i++) {
		var item = req.responseXML.getElementsByTagName("item")[i];
		var this_style = new Object(); this_style.margin = "0 auto 0 auto";
		div1 = createDivObject("div", mitarb, "", "cont");
		div2 = createDivObject('div', mitarb, '<img src="/_images/global/empty-o.gif" width="1" height="1" alt="" />', 'dotted-r');
		div3 = createDivObject('div', mitarb, '<img src="/_images/mitarbeiter/' + getElementTextNS("", "img", item, 0) + '" width="154" height="113" alt="' + getElementTextNS("", "name", item, 0) + '" />', 'img-left');
		div4 = createDivObject('div', mitarb, '', 'text-right');
		div41 = createDivObject('p', div4, getElementTextNS('', 'function1-e', item, 0), 'text11', this_style);
		div42 = createDivObject('p', div4, getElementTextNS('', 'name', item, 0), 'title15bold', this_style);
		if (getElementTextNS('', 'function2-e', item, 0).length) {
			div43 = createDivObject('p', div4, getElementTextNS('', 'function2-e', item, 0), 'text11', this_style);
		}
		div44 = createDivObject('p', div4, getElementTextNS('', 'email', item, 0), 'text11', this_style);
   	}
}

// generate random
function writeRandom() {
	var items = req.responseXML.getElementsByTagName("item");
	var randomnumber=Math.floor(Math.random()*items.length);

	if (items.length >= 1 ) {
		var item = req.responseXML.getElementsByTagName("item")[randomnumber];
		var mitarb = document.getElementById("box-mitarb");
		div1 = createDivObject('div', mitarb, "", "title");
		temp = createDivObject('span', div1, "Employees", "title12bold");
		div2 = createDivObject('div', mitarb, '<img src="/_images/global/empty-o.gif" width="1" height="1" alt="" />', 'dotted-r');
		div3 = createDivObject('div', mitarb, '<img src="/_images/mitarbeiter/' + getElementTextNS("", "img", item, 0) + '" width="154" height="113" alt="' + getElementTextNS("", "name", item, 0) + '" />', 'image');
		div4 = createDivObject('div', mitarb, '', 'mitarb');
		div41 = createDivObject('div', div4, '<b>&laquo;</b>' + getElementTextNS('', 'statement-e', item, 0) + '<b>&raquo;</b>', 'text11');
		div41.setAttribute('id','mitarb-statement');
		div42 = createDivObject('div', div4, getElementTextNS('', 'name', item, 0), 'text11');
		div42.setAttribute('id','mitarb-name');
	}
}

// generate news
function writeNews() {
	var items = req.responseXML.getElementsByTagName("item");
	var newsticker = document.getElementById("newsticker");
	for (var i = 0; i < items.length; i++) {
		var item = req.responseXML.getElementsByTagName("item")[i];
		div1 = createDivObject('div', newsticker, '', "news");
		div2 = createDivObject('div', div1, getElementTextNS('', 'date', item, 0) + ' ' + getElementTextNS('', 'title', item, 0) , 'title12bold');
		div3 = createDivObject('div', div1, getElementTextNS('', 'text', item, 0), 'text11');
		div4 = createDivObject('div', div1, '<a href="' + getElementTextNS('', 'link', item, 0) + '">mehr</a>', 'text11');
   }
}

// random fuer loadXMLDoc(); in body-onload
var randrang = Math.floor(Math.random()*10);

function initJS() {
	// MM_preloadImages('/_images/illu/illu_01_icon.jpg','/_images/illu/illu_02_icon.jpg','/_images/illu/illu_03_icon.jpg','/_images/illu/illu_04_icon.jpg','/_images/illu/illu_05_icon.jpg','/_images/illu/illu_06_icon.jpg');
	highlightCurrent();
	var randrang = Math.floor(Math.random()*10);
	loadXML('/fr/_app/mitarbeiter/mitarbeiter.xml?i' + randrang, 1);
	getRSS('/en/_app/rss/news.xml?i' + randrang, 1);
}