function clearMerk(type) {
	if(typeof modelField_id == 'undefined') {
		return;
	}
	var el = document.getElementById(makeField_id);
	if(el) {
		el.options.length = 0;
		var option = document.createElement('option');
		option.value = '';

		if(type == null) {
			type = 'dochter';
		}

		option.appendChild(document.createTextNode('Kies eerst een '+ type));
		el.appendChild(option);
		if (el.onchange != null) {
			el.onchange();
		}
		clearModel(type);
		clearDealer(type);
	}
}

function clearModel(type) {
	if(typeof modelField_id == 'undefined') {
		return;
	}
	var el = document.getElementById(modelField_id);
	if(el) {
		el.options.length = 0;
		var option = document.createElement('option');
		option.value = '';

		if(type == null) {
			type = 'merk';
		}

		option.appendChild(document.createTextNode('Kies eerst een '+ type));
		el.appendChild(option);
		if (el.onchange != null) {
			el.onchange();
		}
		clearVariant(type);
	}
}

function clearVariant(type) {
	if(typeof variantField_id == 'undefined') {
		return;
	}
	var el = document.getElementById(variantField_id);
	if(el) {
		el.options.length = 0;
		var option = document.createElement('option');
		option.value = '';

		if(type == null) {
			type = 'model';
		}

		option.appendChild(document.createTextNode('Kies eerst een '+ type));
		el.appendChild(option);
		if (el.onchange != null) {
			el.onchange();
		}
		clearSerie(type);
	}
}

function clearSerie(type) {
	if(typeof serieField_id == 'undefined') {
		return;
	}
	var el = document.getElementById(serieField_id);
	if(el) {
		try {
			el.options.length = 0;
		} catch(e) {
		}
		var option = document.createElement('option');
		option.value = '';

		if(type == null) {
			type = 'variant';
		}

		option.appendChild(document.createTextNode('Kies eerst een '+ type));
		el.appendChild(option);
		if (el.onchange != null) {
			el.onchange();
		}
		clearType(type);
	}
	if(setup == 'beheer_kortingen') {
		whf_setRequired(typeField_id, false);
	}
}

function clearType(type) {
	if(typeof typeField_id == 'undefined') {
		return;
	}
	var el = document.getElementById(typeField_id);
	if(el && el.options) {
		try {
			el.options.length = 0;
		} catch(e) {
		}
		var option = document.createElement('option');

		if(type == null) {
			type = 'serie';
		}

		option.appendChild(document.createTextNode('Kies eerst een '+ type));
		option.value = '';
		el.appendChild(option);
	}
}

function clearDealer(type) {
	if(typeof dealerField_id == 'undefined') {
		return;
	}
	var el = document.getElementById(dealerField_id);
	if(el) {
		el.options.length = 0;
		var option = document.createElement('option');
		option.value = '';

		if(type == null) {
			type = 'merk';
		}

		option.appendChild(document.createTextNode('Kies eerst een '+ type));
		el.appendChild(option);
		if (el.onchange != null) {
			el.onchange();
		}
	}
}

function dochterChanged(value) {
	if(value != '') {
		clearModel();
		clearDealer();
		var el = document.getElementById(makeField_id);
		el.disabled=true;
		el.options.length = 0;
		var option = document.createElement('option');
		option.value = '';
		option.innerHTML = 'Selecteer...';
		el.appendChild(option);
		var j = 0;
		for(i in nak_merken[value]) {
			if(typeof(nak_merken[value][i]) == 'string') {
				var option = document.createElement('option');
				option.value = i;
				option.innerHTML = nak_merken[value][i];
				el.appendChild(option);
				j++;
			}
		}
		el.disabled=false;
		if(j == 1 && setup != 'beheer_kortingen' && setup != 'beheer_afleverpakketten' && setup != 'home' && typeof variantField_id != 'undefined') {
			el.value = i;
			merkChanged(i);
		}
	} else {
		clearMerk();
	}
}

function merkChanged(value) {
	if(value != '') {
		clearVariant();
		var el = document.getElementById(modelField_id);
		el.disabled=true;
		el.options.length = 0;
		var option = document.createElement('option');
		option.value = '';
		option.innerHTML = 'Selecteer...';
		el.appendChild(option);
		var j = 0;
		for(i in nak_modellen[value]) {
			if(typeof(nak_modellen[value][i]) == 'string') {
				var option = document.createElement('option');
				option.value = i;
				option.innerHTML = nak_modellen[value][i];
				el.appendChild(option);
				j++;
			}
		}
		el.disabled=false;
		if(j == 1 && setup != 'beheer_kortingen' && setup != 'beheer_afleverpakketten' && setup != 'home' && typeof variantField_id != 'undefined') {
			el.value = i;
			modelChanged(i);
		}

		if(typeof dealerField_id == 'undefined') {
			return;
		}
		var daughter = document.getElementById(daughterField_id);
		var el = document.getElementById(dealerField_id);
		if(!el) {
			return;
		}
		el.disabled=true;
		el.options.length = 0;
		var option = document.createElement('option');
		option.value = '';
		option.innerHTML = 'Selecteer...';
		el.appendChild(option);
		var j = 0;
		for(i in nak_dealers[daughter.value][value]) {	// XXX
			if(typeof(nak_dealers[daughter.value][value][i]) == 'string') {
				var option = document.createElement('option');
				option.value = i;
				option.innerHTML = nak_dealers[daughter.value][value][i];
				el.appendChild(option);
				j++;
			}
		}
		el.disabled=false;
	} else {
		clearModel();
		clearDealer();
	}
}

function modelChanged(value) {
	var make = document.getElementById(makeField_id);
	var el = document.getElementById(variantField_id);

	if(value != '') {
		clearSerie();
		el.disabled = true;
		var script = document.createElement('script');
		script.type = 'text/javascript';
		if(setup == 'dealers_aanbiedingen') {
			script.src = '/js/'+ make.value +'/'+ value +'/all/types.js';
		} else {
			script.src = '/js/'+ make.value +'/'+ value +'/types.js';
		}
		document.getElementsByTagName('head')[0].appendChild(script);
	} else {
		clearVariant();
	}
}

function updateVarianten(make_id, model_id) {
	var el = document.getElementById(variantField_id);
	el.options.length = 0;
	var option = document.createElement('option');
	option.value = '';
	option.innerHTML = 'Selecteer...';
	el.appendChild(option);
	var j = 0;
	for(i in varianten[make_id][model_id]) {
		var option = document.createElement('option');
		option.value = i;
		option.innerHTML = varianten[make_id][model_id][i];
		el.appendChild(option);
		j++;
	}
	if(j == 1 && setup != 'beheer_kortingen' && setup != 'beheer_afleverpakketten') {
		el.value = i;
		variantChanged(i);
	}
	el.disabled = false;
}

function variantChanged(value) {
	if(value != '') {
		clearType();
		var el = document.getElementById(serieField_id);
		el.options.length = 0;
		var option = document.createElement('option');
		var make_id = document.getElementById(makeField_id).value;
		var model_id = document.getElementById(modelField_id).value;
		var variant_id = document.getElementById(variantField_id).value;
		option.value = '';
		option.innerHTML = 'Selecteer...';
		el.appendChild(option);
		var j = 0;
		for(i in series[make_id][model_id][variant_id]) {
			var option = document.createElement('option');
			option.value = i;
			option.innerHTML = series[make_id][model_id][variant_id][i];
			el.appendChild(option);
			j++;
		}
		if(j == 1 && setup != 'beheer_kortingen') {
			el.value = i;
			serieChanged(i);
		}
	} else {
		clearSerie();
	}
}

function serieChanged(value) {

	if(value != '') {
		var el = document.getElementById(typeField_id);
		try {
			el.options.length = 0;
		} catch(e) {
		}
		var option = document.createElement('option');
		var make_id = document.getElementById(makeField_id).value;
		var model_id = document.getElementById(modelField_id).value;
		var variant_id = document.getElementById(variantField_id).value;
		var serie_id = document.getElementById(serieField_id).value;
		option.value = '';
		option.innerHTML = 'Selecteer...';
		el.appendChild(option);
		for(i in types[make_id][model_id][variant_id][serie_id]) {
			var option = document.createElement('option');
			option.value = i;
			option.innerHTML = types[make_id][model_id][variant_id][serie_id][i];
			el.appendChild(option);
		}
		if(setup == 'beheer_kortingen') {
			whf_setRequired(typeField_id, true);
		}
	} else {
		clearType();
	}
}

function load_photo(photo) {
	el = document.getElementById('photo_');
	el.src = photo;
}

function setwaitform(frm, tp) {
	if(whf_checkForm(frm) != false) {
		var el = document.createElement('div');
		el.className = 'momentaub_overlay';
		el.id = 'momentaub';
		el.style.top = tp + 'px';
		el.appendChild(document.createTextNode('Een moment aub...'));
		document.body.appendChild(el);
	}
}

function alookup(xmlHttp) {
	var ret = eval(xmlHttp.responseText);
	document.getElementById(straatidField).value = ret[1];
	document.getElementById(plaatsidField).value = ret[0];
}


function onsubmithandler() {
	return true;
}

function showPopin(id, closeFunction) {
	wh_gel(id).style.display = '';

	if(closeFunction) {
		wh_gel(id)._closeFunction = closeFunction;
	}
}

function hidePopin(id) {
	wh_gel(id).style.display = 'none';

	if(typeof(wh_gel(id)._closeFunction) == 'function') {
		wh_gel(id)._closeFunction();
	}
}

function showRegisterPopin() {
	document.domain = 'nieuweautokopen.autooz.nl';
	var fromOffer = ((document.location.href.indexOf('/details/') != -1 || document.location.href.indexOf('/inruilauto/') != -1) ? 1: 0);
	var https = (document.location.protocol == 'https:' ? 1 : 0);
	wh_gel('registerPopinIFrame').src = 'https://'+ document.location.hostname +'/registreren/iframe/?p='+ https +'&amp;from_offer='+ fromOffer;
	showPopin('registerPopin');
}

function showMoviePopin(id, width, height) {
	width = width || 400;
	height = height || 300;

	wh_gel('moviePopinIframe').width = width;
	wh_gel('moviePopinIframe').height = height;
	wh_gel('moviePopinIframe').src = getMovieEmbedURL(id, width, height);
	showPopin('moviePopin', function() {
		wh_gel('moviePopinIframe').src = 'javascript:;';
	});
}

function getMovieEmbedURL(id, width, height) {
	return '/movie/'+ id +'/?width='+ width +'&amp;height='+ height;
}

var close_button_locked = false;

function closeRegisterPopinReload() {
	if(!close_button_locked) {
		hidePopin('registerPopin');
		window.location = window.location;	// window.reload() geeft niet het gewenste resultaat
	}
}

function closeRegisterPopinSubmit() {
	if(!close_button_locked) {
		hidePopin('registerPopin');
		wh_gel('whf_form').submit();
	}
}

function closeRegisterPopinAndSubmit(timeout) {
	if(timeout) {
		close_button_locked = true;
		setTimeout(function() { closeRegisterPopinAndSubmit(); }, timeout); 
	} else {
		close_button_locked = false;
		closeRegisterPopinSubmit();
	}
}

function closeRegisterPopinAndReload(timeout) {
	if(timeout) {
		close_button_locked = true;
		setTimeout(function() { closeRegisterPopinAndReload(); }, timeout); 
	} else {
		close_button_locked = false;
		closeRegisterPopinReload();
	}
}


function addresslookup(postcode,huisnr) {
	if(postcode && huisnr) {
		var req = new whf_ajax('/addresslookup.html?postcode='+postcode+'&huisnr='+huisnr,alookup);
		req.send();
	}
}

var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{
			string: navigator.userAgent,
			subString: "Chrome",
			identity: "Chrome"
		},
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
BrowserDetect.init();

