var xmlhttp
var daValue

function populateCombo(formEl, targetField, parentFields){
	//alert("populateCombo");
	getParentValues(formEl, targetField, parentFields);
}

function getParentValues(formEl, targetField, parentFields){
	//alert("getParentValues");
	formEl = eval(formEl);
	//alert("parentFields "+parentFields);
	parentFields = eval(parentFields);
	parentFields.push([targetField,true])
	//alert("parentFields "+parentFields);
	xmlData = '';
	xmlData += 'daForm='+ formEl.id +'&daFields=' + parentFields.join('|');
	//alert("parentFields 1 "+parentFields.length);
	for(i=0;i<parentFields.length;i++){
		//alert(formEl);
		//alert(parentFields[i]);
		//alert(formEl[parentFields[i][0]].tagName);
		//if (el[daFields[i]].type != 'hidden'){
			if (targetField==''){
				targetField = parentFields[i][0];
			}
		//}
		if (formEl[parentFields[i][0]] > 1){
			for(ii=0;ii<formEl[parentFields[i][0]].length;ii++){
				alert(formEl[parentFields[i][0]][ii].checked);	
			}
		}else{
			if (formEl[parentFields[i][0]].tagName.toLowerCase() == 'input'){
				if (formEl[parentFields[i][0]].type == 'radio'){
					alert('radio 1');
				}else{
					daField = formEl[parentFields[i][0]];
					daValue = daField.value;
				}
			}
			if (formEl[parentFields[i][0]].tagName.toLowerCase().indexOf('select')>-1){
				daField = formEl[parentFields[i][0]];
				if(daField.selectedIndex >= 0){
					daValue = daField[daField.selectedIndex].value;
				}else{
					daValue = "";
				}
			}
		}
		xmlData += '&' + daField.name + '=' + daValue;
	}
	//alert("parentFields 2");
	//xmlData += '&firstField=' + targetField;
	disableNext = false;
	for(i=0;i<parentFields.length;i++){
		if (disableNext == true && parentFields[i][1]){
			if (formEl[parentFields[i][0]][0] != undefined){
				alert('radio 2');
			}else{
				if (formEl[parentFields[i][0]].tagName.toLowerCase() == 'input'){
					formEl[parentFields[i][0]].value = 'Henter data...';
				}
				if (formEl[parentFields[i][0]].tagName.toLowerCase().indexOf('select')>-1){
					daField = formEl[parentFields[i][0]];
					daField[0].text = 'Henter data...';
					daField[0].selected = true;
				}
			}
			formEl[parentFields[i][0]].disabled = true;
		}
		if (targetField == parentFields[i][0]){
			disableNext = true;
		}
	}
	//alert(xmlData);
	loadXMLDoc(xmlData);
}


function initForm(daForm){
	//xmlData = 'forhandler_nr=1234&';
	//loadXMLDoc(xmlData);
	daForm = eval(daForm)
	updateForm(daForm, '');
}

function updateForm(daForm, firstField){
	daFields = eval('daFields_' + daForm.guid.value);
	
	el = daForm;
	xmlData = '';
	xmlData += 'daForm='+ daForm.id +'&daFields=' + daFields.join('|');
	
	firstFieldHit = false;
	
	for(i=0;i<daFields.length;i++){
		//alert(el[daFields[i][0]].name);
		//alert(el[daFields[i][0]].tagName);
		//if (el[daFields[i]].type != 'hidden'){
		if (firstField==''){
			firstField = daFields[i][0];
		}
		//}
		//alert(el[daFields[i][0]].type);
		/*if (el[daFields[i][0]][0] != undefined){
			for(ii=0;ii<el[daFields[i][0]].length;ii++){
				if(el[daFields[i][0]][ii].checked == true){
					daField = el[daFields[i][0]][ii];
					daValue = daField.value;
				}
			}
		}else{*/
		if (el[daFields[i][0]].tagName != undefined){
			if (el[daFields[i][0]].tagName.toLowerCase() == 'input'){
				daField = el[daFields[i][0]];
				daValue = daField.value;
			}else if (el[daFields[i][0]].tagName.toLowerCase().indexOf('select')>-1){
				daField = el[daFields[i][0]];
				if(daField.selectedIndex >= 0){
					daValue = daField[daField.selectedIndex].value;
				}else{
					daValue = "";
				}
			}
		}else{
			//if (el[daFields[i][0]] > 1){
				for(ii=0;ii<el[daFields[i][0]].length;ii++){
					if(el[daFields[i][0]][ii].checked == true){
						daField = el[daFields[i][0]][ii];
						daValue = daField.value;
					}
				}
				xmlData += '&' + daField.name + '=' + daValue;
			//}
		}
		//}
		//alert("daFields[i][1]:"+daFields[i][1]+" | firstFieldHit:"+firstFieldHit+" | "+daField.name + '=' + daValue);
		if (!firstFieldHit || daFields[i][1]){
			xmlData += '&' + daField.name + '=' + daValue;
		}
		if (firstField == daFields[i][0] || firstField == ""){
			firstFieldHit = true;
		}
	}
	xmlData += '&firstField=' + firstField;
	disableNext = false;
	for(i=0;i<daFields.length;i++){
		//alert(firstField +' == '+ daFields[i] +' | '+ disableNext);
		if (disableNext == true && daFields[i][1]){
			if (el[daFields[i][0]].tagName.toLowerCase() == 'input'){
				el[daFields[i][0]].value = 'Henter data...';
			}
			if (el[daFields[i][0]].tagName.toLowerCase().indexOf('select')>-1){
				daField = el[daFields[i][0]];
				daField[0].text = 'Henter data...';
				daField[0].selected = true;
			}
			el[daFields[i][0]].disabled = true;
		}
		if (firstField == daFields[i][0]){
			disableNext = true;
		}
	}
	//alert(xmlData);
	loadXMLDoc(xmlData);
}



function loadXMLDoc(xmlData){
	var headID = document.getElementsByTagName("body")[0];
	var newScript = document.createElement('script');
	tagID = escape(xmlData);
	newScript.type = 'text/javascript';
	newScript.src = 'http://designs.bilinfocms.dk/datascript.asp?' + xmlData + '';
	newScript.id = 'carsearchjs';
	headID.appendChild(newScript);
	//window.open(document.getElementById('carsearchjs').src);
	//alert(document.getElementById('carsearchjs').src);
	
}


function skift(fieldParam, xmlData, daForm) {
	//alert(xmlData);
	daForm = getForm(daForm);
	daField = daForm[fieldParam];
	
	
	if (xmlData != ''){
		if (daField.tagName.toLowerCase() == 'input'){
			selectedValue = daField.value;
		}
		if (daField.tagName.toLowerCase().indexOf('select')>-1){
			selectedValue = daField[daField.selectedIndex].value;
			//alert("skift "+selectedValue);
			selectIndex = 0;
		}	
		
		var browser = navigator.appName;
		if (window.XMLHttpRequest && browser != 'Microsoft Internet Explorer'){
			var oParser = new DOMParser();
			var xmlDoc = oParser.parseFromString(xmlData, "text/xml");
		}else if (window.ActiveXObject){
			var xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
			xmlDoc.async="false";
			xmlDoc.loadXML(xmlData);
		}
		
		if (daField.tagName.toLowerCase() == 'select'){
			xmlLength = xmlDoc.documentElement.childNodes.length;
			daField.length = xmlLength;
		}
	
		
		for (i=0;i<xmlDoc.documentElement.childNodes.length;i++){
			var thisNode = xmlDoc.documentElement.childNodes[i].childNodes;
			if(thisNode.length > 1){
				daField.options[i].value = getInnerText(thisNode[1]);
			} else {
				daField.options[i].value = getInnerText(thisNode[0]);
			}
			daField.options[i].text = unescape(getInnerText(thisNode[0]));
			if (daField.options[i].value == selectedValue){
				selectIndex = i;
			}
		}
		daField.selectedIndex = selectIndex;
		daField.disabled = false;
	}else{
		selectIndex = daField.selectedIndex;
		daField.selectedIndex = 0;
		daField.selectedIndex = selectIndex;
		daField.disabled = false;	
	}

}

function getForm(daForm){
	return document[daForm]
}

function getInnerText (node) { 
   if (typeof node.textContent != 'undefined') { 
     return node.textContent; 
   } 
   else if (typeof node.innerText != 'undefined') { 
     return node.innerText; 
   } 
   else if (typeof node.text != 'undefined') { 
     return node.text; 
   } 
   else { 
     switch (node.nodeType) { 
       case 3: 
       case 4: 
         return node.nodeValue; 
         break; 
       case 1: 
       case 11: 
         var innerText = ''; 
         for (var i = 0; i < node.childNodes.length; i++) { 
           innerText += getInnerText(node.childNodes[i]); 
         } 
         return innerText; 
         break; 
       default: 
         return ''; 
     } 
   } 
} 