var root = "";
var qFilter = "";   
var questionsOfActiveSubNavigation = "";
var activeSubNavigation = "";

function makeRequest(url) {
    var httpRequest;

    if (window.XMLHttpRequest) { // Mozilla, Safari, ...
        httpRequest = new XMLHttpRequest();
        if (httpRequest.overrideMimeType) {
            httpRequest.overrideMimeType('text/xml');
            // See note below about this line
        }
    } 
    else if (window.ActiveXObject) { // IE
        try {
            httpRequest=new ActiveXObject("Msxml2.XMLHTTP");
            } 
            catch (e) {
           		try {
                	httpRequest=new ActiveXObject("Microsoft.XMLHTTP");
                } 
                catch (e) {}
            }
     	}

    if (!httpRequest) {
        alert('Giving up :( Cannot create an XMLHTTP instance');
        return false;
    }
    httpRequest.onreadystatechange=function() { alertContents(httpRequest); };
    httpRequest.open('GET', url, true);
    httpRequest.send('');
}

function alertContents(httpRequest) {

    if (httpRequest.readyState == 4) {
        if (httpRequest.status == 200) {
        	
			var xmldoc=httpRequest.responseXML;
			root=xmldoc.getElementsByTagName('questions').item(0);
						
			document.getElementById('startHead').innerHTML=root.getElementsByTagName('startHead').item(0).childNodes[0].data;
			document.getElementById('searchHead').innerHTML=root.getElementsByTagName('searchHead').item(0).childNodes[0].data;
			document.getElementById('LastChanged').innerHTML=root.getElementsByTagName('LastChanged').item(0).childNodes[0].data;
        
			getCategories();
		
		} else {
            alert('There was a problem with the request.');
        }
    }
}

function getCategories() {
	html="";
	var options="";
	        
	for (i=0;i<root.getElementsByTagName('categorie').length;i++) {
		html += "<a href=\"javascript:\/\/\" onclick=\"getSubCategories('"+i+"')\" class=\"tab\">"+root.getElementsByTagName('categorie').item(i).getAttribute('name')+"<\/a>";
		options += "<option>"+root.getElementsByTagName('categorie').item(i).getAttribute('name')+"<\/option>";
	}
	
	document.getElementById('tabs').innerHTML=html;
	document.getElementById('tabs').innerHTML += "<br class=\"clear\">";
	
	resetTabs();
	
	document.getElementById('search').innerHTML="<select id=\"searchCat\" onchange=\"enableSearch();\"><option>"+root.getElementsByTagName('searchSelect').item(0).childNodes[0].data+"<\/option>"+options+"<\/select>";
	
}

function resetTabs() {
	for (i=0;i<document.getElementById('tabs').getElementsByTagName('a').length;i++) {
		document.getElementById('tabs').getElementsByTagName('a')[i].className="tab";
		if (i == document.getElementById('tabs').getElementsByTagName('a').length-1)
			document.getElementById('tabs').getElementsByTagName('a')[i].className="tabLast";
	}
}

function getSubCategories(categorie, changeLayout) {
	questionsOfActiveSubNavigation="";
	html="";
	
	resetTabs();
	
	document.getElementById('tabs').getElementsByTagName('a')[categorie].blur();
		
	if (document.getElementById('tabs').getElementsByTagName('a')[categorie] != document.getElementById('tabs').getElementsByTagName('a')[categorie].parentNode.getElementsByTagName('a')[0]) {
		document.getElementById('tabs').getElementsByTagName('a')[categorie].className="tabActive";
		}
	else {
		document.getElementById('tabs').getElementsByTagName('a')[categorie].className="tabActiveFirst";
	}
	
	if (document.getElementById('tabs').getElementsByTagName('a')[categorie] != document.getElementById('tabs').getElementsByTagName('a')[categorie].parentNode.getElementsByTagName('a')[0])
		document.getElementById('tabs').getElementsByTagName('a')[categorie].previousSibling.className="tabPreActive";
		
	if (document.getElementById('tabs').getElementsByTagName('a')[categorie] != document.getElementById('tabs').getElementsByTagName('a')[categorie].parentNode.getElementsByTagName('a')[document.getElementById('tabs').getElementsByTagName('a')[categorie].parentNode.getElementsByTagName('a').length-2]) {
		document.getElementById('tabs').getElementsByTagName('a')[categorie].nextSibling.className="tabPostActive";
	}
	else {
		document.getElementById('tabs').getElementsByTagName('a')[categorie].nextSibling.className="tabPostActiveLast";
	} 
	
	if (typeof(changeLayout) == "undefined") {
		document.getElementById('td01').setAttribute('width','174');
		document.getElementById('td02').setAttribute('width','333');
		document.getElementById('subCats').style.borderRight="1px solid #ccc";
		document.getElementById('td03').style.borderRight="1px solid #ccc";
	}
	
	for (i=0;i<root.getElementsByTagName('categorie').item(categorie).getElementsByTagName('subcategorie').length;i++) {
		html += "<a href=\"javascript:\/\/\" class=\"sub\" onclick=\"createDivWithLinks("+categorie+","+i+")\">"+root.getElementsByTagName('categorie').item(categorie).getElementsByTagName('subcategorie').item(i).getAttribute('name')+"<\/a>";
	}
	document.getElementById('subCatsDiv').innerHTML=html;
	
	if (typeof(changeLayout) == "undefined") {
		for (i=0;i<document.getElementById('qa').getElementsByTagName('img').length;i++) {
			document.getElementById('qa').getElementsByTagName('img')[i].style.display = "none";
		}
		
		document.getElementById('img_'+categorie).style.display = "block";
	}
	
	if(document.getElementById('searchCat').selectedIndex-1 != categorie ) {
		document.getElementById('searchCat').selectedIndex=Number(categorie)+Number(1);
	
		document.getElementById('searchValue').value=root.getElementsByTagName('searchInput').item(0).childNodes[0].data;
		document.getElementById('searchValue').style.display="";
	}
}

function insertAfter(new_node, existing_node) {  
	if (existing_node.nextSibling) {    
			existing_node.parentNode.insertBefore(new_node, existing_node.nextSibling);
		} else {    
			existing_node.parentNode.appendChild(new_node);
	}
} 

function createDivWithLinks(categorie, subcategorie) {
	if(questionsOfActiveSubNavigation) {
		element=questionsOfActiveSubNavigation.parentNode;
		
		throwawayNode=element.removeChild(questionsOfActiveSubNavigation);
		activeSubNavigation.className ="sub";
	}
	
	document.getElementById('subCatsDiv').getElementsByTagName('a')[subcategorie].className ="subActive";
	html="";
	
	for (i=0;i<root.getElementsByTagName('categorie').item(categorie).getElementsByTagName('subcategorie').item(subcategorie).getElementsByTagName('item').length;i++) {
		html += "<a href=\"javascript:showContent("+categorie+","+subcategorie+","+i+")\" class=\"faq\">"+root.getElementsByTagName('categorie').item(categorie).getElementsByTagName('subcategorie').item(subcategorie).getElementsByTagName('item').item(i).getElementsByTagName('question').item(0).childNodes[0].data+"<\/a>";							
	}
	
	document.getElementById('td01').setAttribute('width','506');
	document.getElementById('td02').setAttribute('width','1');
	document.getElementById('subCats').style.borderRight="none";
	document.getElementById('td03').style.borderRight="none";
	
	for (i=0;i<document.getElementById('qa').getElementsByTagName('img').length;i++) {
			document.getElementById('qa').getElementsByTagName('img')[i].style.display = "none";
	}
		
	var newDiv=document.createElement('div');
	newDiv.innerHTML=html; 
	newDiv.id="_tmp";
	
	insertAfter(newDiv, document.getElementById('subCatsDiv').getElementsByTagName('a')[subcategorie]);
	
	questionsOfActiveSubNavigation=document.getElementById("_tmp");
	activeSubNavigation=document.getElementById('subCatsDiv').getElementsByTagName('a')[subcategorie];
}

function showContent(categorie, subcategorie, question, search) {
	questionsOfActiveSubNavigation="";
	
	html="";
	html += "<span class=\"normaltextbold\">"+root.getElementsByTagName('categorie').item(categorie).getElementsByTagName('subcategorie').item(subcategorie).getElementsByTagName('item').item(question).getElementsByTagName('question').item(0).childNodes[0].data+"<\/span><br>";							
	
	var escapeLinebreaks=root.getElementsByTagName('categorie').item(categorie).getElementsByTagName('subcategorie').item(subcategorie).getElementsByTagName('item').item(question).getElementsByTagName('answer').item(0).childNodes[0].data.replace(/#br#/g, '<br>');

	html += "<span class=\"normaltext\">"+escapeLinebreaks+"<\/span><br><br>";								
	
	if (root.getElementsByTagName('categorie').item(categorie).getElementsByTagName('subcategorie').item(subcategorie).getElementsByTagName('item').item(question).getElementsByTagName('links').length > 0 && root.getElementsByTagName('categorie').item(categorie).getElementsByTagName('subcategorie').item(subcategorie).getElementsByTagName('item').item(question).getElementsByTagName('linkList').length == 0) {
		for (i=0;i<root.getElementsByTagName('categorie').item(categorie).getElementsByTagName('subcategorie').item(subcategorie).getElementsByTagName('item').item(question).getElementsByTagName('links').length;i++) {
			html += "<span class=\"normaltextbold666\">"+root.getElementsByTagName('categorie').item(categorie).getElementsByTagName('subcategorie').item(subcategorie).getElementsByTagName('item').item(question).getElementsByTagName('links')[i].getElementsByTagName('linkTitle').item(0).childNodes[0].data+"<\/span><br>";
			if (root.getElementsByTagName('categorie').item(categorie).getElementsByTagName('subcategorie').item(subcategorie).getElementsByTagName('item').item(question).getElementsByTagName('links')[i].getElementsByTagName('link').item(0).getAttribute('type') == "internal") {
				html += "<a href=\""+root.getElementsByTagName('categorie').item(categorie).getElementsByTagName('subcategorie').item(subcategorie).getElementsByTagName('item').item(question).getElementsByTagName('links')[i].getElementsByTagName('link').item(0).childNodes[0].data+"\" onfocus=\"this.blur();\" class=\"IcNoBlockLink\">"+root.getElementsByTagName('categorie').item(categorie).getElementsByTagName('subcategorie').item(subcategorie).getElementsByTagName('item').item(question).getElementsByTagName('links')[i].getElementsByTagName('linkDescription').item(0).childNodes[0].data+"<\/a><br><br>";
			}
			
			if (root.getElementsByTagName('categorie').item(categorie).getElementsByTagName('subcategorie').item(subcategorie).getElementsByTagName('item').item(question).getElementsByTagName('links')[i].getElementsByTagName('link').item(0).getAttribute('type') == "download") {
				html += "<a href=\""+root.getElementsByTagName('categorie').item(categorie).getElementsByTagName('subcategorie').item(subcategorie).getElementsByTagName('item').item(question).getElementsByTagName('links')[i].getElementsByTagName('link').item(0).childNodes[0].data+"\" onfocus=\"this.blur();\" class=\"IcDownload\" target=\"_blank\" onclick=\"trackClickevent('contentlink_download','"+root.getElementsByTagName('categorie').item(categorie).getElementsByTagName('subcategorie').item(subcategorie).getElementsByTagName('item').item(question).getElementsByTagName('links')[i].getElementsByTagName('link').item(0).childNodes[0].data+"');\">"+root.getElementsByTagName('categorie').item(categorie).getElementsByTagName('subcategorie').item(subcategorie).getElementsByTagName('item').item(question).getElementsByTagName('links')[i].getElementsByTagName('linkDescription').item(0).childNodes[0].data+"</a><br><br>";
			}
			
			if (root.getElementsByTagName('categorie').item(categorie).getElementsByTagName('subcategorie').item(subcategorie).getElementsByTagName('item').item(question).getElementsByTagName('links')[i].getElementsByTagName('link').item(0).getAttribute('type') == "external") {
				html += "<a href=\""+root.getElementsByTagName('categorie').item(categorie).getElementsByTagName('subcategorie').item(subcategorie).getElementsByTagName('item').item(question).getElementsByTagName('links')[i].getElementsByTagName('link').item(0).childNodes[0].data+"\" onfocus=\"this.blur();\" class=\"IcExternal\" target=\"_blank\" onclick=\"trackClickevent('contentlink_external','"+root.getElementsByTagName('categorie').item(categorie).getElementsByTagName('subcategorie').item(subcategorie).getElementsByTagName('item').item(question).getElementsByTagName('links')[i].getElementsByTagName('link').item(0).childNodes[0].data+"');\">"+root.getElementsByTagName('categorie').item(categorie).getElementsByTagName('subcategorie').item(subcategorie).getElementsByTagName('item').item(question).getElementsByTagName('links')[i].getElementsByTagName('linkDescription').item(0).childNodes[0].data+"</a><br><br>";
			}
		}
	}
	 
	if (root.getElementsByTagName('categorie').item(categorie).getElementsByTagName('subcategorie').item(subcategorie).getElementsByTagName('item').item(question).getElementsByTagName('linkList').length > 0) {
		for (i=0;i<root.getElementsByTagName('categorie').item(categorie).getElementsByTagName('subcategorie').item(subcategorie).getElementsByTagName('item').item(question).getElementsByTagName('linkList').length;i++) {
			html += "<span class=\"normaltextbold666\">"+root.getElementsByTagName('categorie').item(categorie).getElementsByTagName('subcategorie').item(subcategorie).getElementsByTagName('item').item(question).getElementsByTagName('linkList')[i].getElementsByTagName('linkTitle').item(0).childNodes[0].data+"<\/span><br>";
			for (j=0;j<root.getElementsByTagName('categorie').item(categorie).getElementsByTagName('subcategorie').item(subcategorie).getElementsByTagName('item').item(question).getElementsByTagName('linkList')[i].getElementsByTagName('links').length;j++) {
				
				if (root.getElementsByTagName('categorie').item(categorie).getElementsByTagName('subcategorie').item(subcategorie).getElementsByTagName('item').item(question).getElementsByTagName('linkList')[i].getElementsByTagName('links')[j].getElementsByTagName('link').item(0).getAttribute('type') == "internal") {
				html += "<a href=\""+root.getElementsByTagName('categorie').item(categorie).getElementsByTagName('subcategorie').item(subcategorie).getElementsByTagName('item').item(question).getElementsByTagName('linkList')[i].getElementsByTagName('links')[j].getElementsByTagName('link').item(0).childNodes[0].data+"\" onfocus=\"this.blur();\" class=\"IcNoBlockLink\">"+root.getElementsByTagName('categorie').item(categorie).getElementsByTagName('subcategorie').item(subcategorie).getElementsByTagName('item').item(question).getElementsByTagName('links')[i].getElementsByTagName('linkDescription').item(0).childNodes[0].data+"<\/a><br><br>";
				}
				
				if (root.getElementsByTagName('categorie').item(categorie).getElementsByTagName('subcategorie').item(subcategorie).getElementsByTagName('item').item(question).getElementsByTagName('linkList')[i].getElementsByTagName('links')[j].getElementsByTagName('link').item(0).getAttribute('type') == "download") {
					html += "<a href=\""+root.getElementsByTagName('categorie').item(categorie).getElementsByTagName('subcategorie').item(subcategorie).getElementsByTagName('item').item(question).getElementsByTagName('linkList')[i].getElementsByTagName('links')[j].getElementsByTagName('link').item(0).childNodes[0].data+"\" onfocus=\"this.blur();\" class=\"IcDownload\" target=\"_blank\" onclick=\"trackClickevent('contentlink_download','"+root.getElementsByTagName('categorie').item(categorie).getElementsByTagName('subcategorie').item(subcategorie).getElementsByTagName('item').item(question).getElementsByTagName('linkList')[i].getElementsByTagName('links')[j].getElementsByTagName('link').item(0).childNodes[0].data+"');\">"+root.getElementsByTagName('categorie').item(categorie).getElementsByTagName('subcategorie').item(subcategorie).getElementsByTagName('item').item(question).getElementsByTagName('links')[i].getElementsByTagName('linkDescription').item(0).childNodes[0].data+"</a><br><br>";
				}
				
				if (root.getElementsByTagName('categorie').item(categorie).getElementsByTagName('subcategorie').item(subcategorie).getElementsByTagName('item').item(question).getElementsByTagName('linkList')[i].getElementsByTagName('links')[j].getElementsByTagName('link').item(0).getAttribute('type') == "external") {
					html += "<a href=\""+root.getElementsByTagName('categorie').item(categorie).getElementsByTagName('subcategorie').item(subcategorie).getElementsByTagName('item').item(question).getElementsByTagName('linkList')[i].getElementsByTagName('links')[j].getElementsByTagName('link').item(0).childNodes[0].data+"\" onfocus=\"this.blur();\" class=\"IcExternal\" target=\"_blank\" onclick=\"trackClickevent('contentlink_external','"+root.getElementsByTagName('categorie').item(categorie).getElementsByTagName('subcategorie').item(subcategorie).getElementsByTagName('item').item(question).getElementsByTagName('linkList')[i].getElementsByTagName('links')[j].getElementsByTagName('link').item(0).childNodes[0].data+"');\">"+root.getElementsByTagName('categorie').item(categorie).getElementsByTagName('subcategorie').item(subcategorie).getElementsByTagName('item').item(question).getElementsByTagName('links')[i].getElementsByTagName('linkDescription').item(0).childNodes[0].data+"</a><br><br>";
				}
			}
		}
	}
	
	if(typeof(search) != 'undefined') {
		html += "<a href=\"javascript:qasearch()\" class=\"IcNoBlockLink\">"+root.getElementsByTagName('backLink').item(0).childNodes[0].data;+"<\/a>";
	}
	else {
		html += "<a href=\"javascript:goback("+categorie+","+subcategorie+","+question+")\" class=\"IcNoBlockLink\">"+root.getElementsByTagName('backLink').item(0).childNodes[0].data;+"<\/a>";
	}
	
	document.getElementById('subCatsDiv').innerHTML=html;
}

function goback(categorie, subcategorie) {
	getSubCategories(categorie, true);
	setTimeout("createDivWithLinks("+categorie+","+subcategorie+")", 100);
}

function qasearch() {
	html="";
	
	if (document.getElementById('searchCat').selectedIndex == 0 || document.getElementById('searchValue').value == "") {
		return false;
	}
	
	categorie=document.getElementById('searchCat').selectedIndex-1;
	var searchString=document.getElementById('searchValue').value.toUpperCase();
	
	document.getElementById('td01').setAttribute('width','506');
	document.getElementById('td02').setAttribute('width','1');
	document.getElementById('subCats').style.borderRight="none";
	document.getElementById('td03').style.borderRight="none";
	
	for (i=0;i<document.getElementById('qa').getElementsByTagName('img').length;i++) {
			document.getElementById('qa').getElementsByTagName('img')[i].style.display = "none";
	}
	
	qFilter=new Array();
	
	for (i=0;i<root.getElementsByTagName('categorie').item(categorie).getElementsByTagName('subcategorie').length;i++) {
		for (j=0;j<root.getElementsByTagName('categorie').item(categorie).getElementsByTagName('subcategorie').item(i).getElementsByTagName('item').length;j++) { 
			findstring=root.getElementsByTagName('categorie').item(categorie).getElementsByTagName('subcategorie').item(i).getElementsByTagName('item').item(j).getElementsByTagName('question').item(0).childNodes[0].data.toUpperCase();
			if (findstring.indexOf(searchString) != -1) {
				qFilter.push(categorie+","+i+","+j);
			}
		}
	} 
	
	html += "<span class=\"normaltextbold\">"+root.getElementsByTagName('searchResultQA').item(0).childNodes[0].data+"<\/span><br>";
	
	if (qFilter.length != 0) {
		for(i=0; i<qFilter.length; i++) {  
			q=qFilter[i].split(',');
			
			html += "<a href=\"javascript:\/\/\" class=\"faq\" onclick=\"showContent("+q[0]+","+q[1]+","+q[2]+", true)\">"+root.getElementsByTagName('categorie').item(q[0]).getElementsByTagName('subcategorie').item(q[1]).getElementsByTagName('item').item(q[2]).getElementsByTagName('question').item(0).childNodes[0].data+"<\/a>";							
		}
	}
	else {
			html += "<span class=\"normaltext\">"+root.getElementsByTagName('noSearchResult').item(0).childNodes[0].data+"<\/span><br>";							
	}
	
	html +="<br><span class=\"normaltextbold\">"+root.getElementsByTagName('searchResultHead').item(0).childNodes[0].data+"<\/span><br>";
	html += "<span class=\"normaltext\">"+root.getElementsByTagName('searchResultText').item(0).childNodes[0].data+"<\/span><br><br>";

	html += "<span class=\"normaltextbold666\">"+root.getElementsByTagName('searchResultLinkTitle').item(0).childNodes[0].data+"<\/span><br>";
	html += "<a href=\""+root.getElementsByTagName('searchResultLink').item(0).childNodes[0].data+"\" class=\"IcNoBlockLink\">"+root.getElementsByTagName('searchResultLinkDescription').item(0).childNodes[0].data+"<\/a><br><br>";
	
	document.getElementById('subCatsDiv').innerHTML=html;
}

function clearInput(x) {
	if (x.value == root.getElementsByTagName('searchInput').item(0).childNodes[0].data)
		x.value="";
}

function resetInput(x) {
	if (x.value == "")
		x.value=root.getElementsByTagName('searchInput').item(0).childNodes[0].data;
}

function enableSearch() {
	if (document.getElementById('searchCat').selectedIndex != 0) {
		document.getElementById('searchValue').value=root.getElementsByTagName('searchInput').item(0).childNodes[0].data;
		document.getElementById('searchValue').style.display="";
		
		getSubCategories(document.getElementById('searchCat').selectedIndex-1); 
	}
	else {
		document.getElementById('searchValue').style.display="none";
	}
}

function initFAQs() {
	xmlURL = /*VIPURL*/"/bmwgroup_prod/e/0_0_www_bmwgroup_com/karriere/haben_sie_fragen/_xml/questions_faq.xml";
	
	makeRequest(xmlURL);
}
