var xmlhttp
var daValue

function initForm(){
	//xmlData = 'forhandler_nr=1234&';
	//loadXMLDoc(xmlData);
	//alert('test');
	updateForm(daForm,'');
}

function updateForm(daForm,firstField){
	el = daForm;
	xmlData = '';
	xmlData += 'daFields=' + dafields.join('|');
	
	for(i=0;i<dafields.length;i++){
		//alert(el[dafields[i][0]].tagName);
		//if (el[dafields[i]].type != 'hidden'){
			if (firstField==''){
				firstField = dafields[i][0];
			}
		//}
		if (el[dafields[i][0]].tagName.toLowerCase() == 'input'){
			daField = el[dafields[i][0]];
			daValue = daField.value;
		}
		if (el[dafields[i][0]].tagName.toLowerCase() == 'select'){
			daField = el[dafields[i][0]];
			if(daField.selectedIndex >= 0){
				daValue = daField[daField.selectedIndex].value;
			}else{
				daValue = "";
			}
		}
		xmlData += '&' + daField.name + '=' + daValue;
	}
	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() == 'select'){
				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);
}

/*function state_Change(){
	if (xmlhttp.readyState==4){
	  // if "OK"
		if (xmlhttp.status==200){
			//alert("responseText " + xmlhttp.responseText);
			eval(xmlhttp.responseText);
		}else{
			alert("Der opstod en fejl: "+xmlhttp.status+" - " + xmlhttp.statusText+ "\n\n" + xmlhttp.responseText)
		}
	}
}*/

function skift(fieldParam,xmlData) {
	daField = daForm[fieldParam];
	if (xmlData != ''){
		if (daField.tagName.toLowerCase() == 'input'){
			selectedValue = daField.value;
		}
		if (daField.tagName.toLowerCase() == 'select'){
			selectedValue = daField[daField.selectedIndex].value;
			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 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 ''; 
     } 
   } 
} 