// maakt een nieuwe <option> aan voor <select> fields
function createOption(field, text, attr, selected_status) {
	var option = document.createElement('option');
	option.appendChild(document.createTextNode(text));
	option.setAttribute('value', attr);
	field.appendChild(option);
	option.selected=selected_status;
}

// leegt <select> fields
function clearSelectbox(field) {
	field.options.length = 0;
}

// update het formulier
function updateForm(step) {
	field_os       = document.getElementById('os');
	field_type     = document.getElementById('type');
	field_subdom   = document.getElementById('subdom');
	field_domeinen = document.getElementById('domeinen');
	field_dns_0    = document.getElementById('dns_0');
	field_dns_1    = document.getElementById('dns_1');
	field_ruimte   = document.getElementById('ruimte');
	field_dataverkeer = document.getElementById('dataverkeer');
	field_pop      = document.getElementById('pop');
	field_mssql    = document.getElementById('mssql');
	field_mysql    = document.getElementById('mysql');
	field_ftp      = document.getElementById('ftp');
	field_cp       = document.getElementById('cp');

	// bij wijziging van veld "Besturingssysteem" ....
	if (step == 1) {

		if (field_os.value == "") {

			// als veld "Besturingssysteem" op de standaard waarde wordt ingesteld resetten we het formulier ...
			resetForm();

		} else {

			// ... anders gaan we invullen
			if (field_type.disabled) {

				// Het veld "Hosting type" is disabled, dit betekent dus dat dit de eerste keer is dat "Besturingssysteem" gekozen is,
				// vul in met standaard waarden dus...
				fillDefault(field_os.value);

			} else {

				// Type Hosting
				field_type.disabled=false;
				field_type.className='input';
				// Dataverkeer
				field_dataverkeer.disabled=false;
				field_dataverkeer.className='input';

				// ... of het is niet disabled, dan moeten we het formulier updaten.
				if (field_os.value == "linux") {

					// "Linux" > "Website hosting"
					if (field_type.options[field_type.selectedIndex].value == "website") {
						// Type Hosting
						clearSelectbox(field_type);
						createOption(field_type, 'E-mail hosting', 'email', false);
						createOption(field_type, 'Website hosting', 'website', true);
						// MSSQL
						field_mssql.disabled=true;
						field_mssql.className='input-disabled';
						// Control Panel
						createOption(field_cp, 'Direct Admin', '', false);
					}

				}

				else if (field_os.value == "windows") {

					// "Windows" > "Website hosting"
					if (field_type.options[field_type.selectedIndex].value == "website") {
						// Type Hosting
						clearSelectbox(field_type);
						createOption(field_type, 'Website hosting', 'website', false);
						// MSSQL
						field_mssql.disabled=false;
						field_mssql.className='input';
						// Control Panel
						clearSelectbox(field_cp);
						createOption(field_cp, 'Plesk', '', false);
					}

					// "Windows" > "E-mail hosting", dit kan niet, dus we maken er "Website hosting" van
					else if (field_type.options[field_type.selectedIndex].value == "email") {
						// Type Hosting
						clearSelectbox(field_type);
						createOption(field_type, 'Website hosting', 'website', false);
						// Aantal subdomeinen
						clearSelectbox(field_subdom);
						createOption(field_subdom, 'onbeperkt', '', false);
						// DNS Beheer
						field_dns_0.checked=false;
						field_dns_1.checked=true;
						field_dns_0.disabled=false;
						field_dns_1.disabled=false;
						// MSSQL
						field_mssql.disabled=false;
						field_mssql.className='input';
						// MySQL
						field_mysql.disabled=false;
						field_mysql.className='input';
						// FTP
						clearSelectbox(field_ftp);
						createOption(field_ftp, 'onbeperkt', '', false);
						// Control Panel
						clearSelectbox(field_cp);
						createOption(field_cp, 'Plesk', '', false);
					}

				}

			}

		}

	}

	// bij wijziging van veld "Type hosting" ....
	else if (step == 2) {

		// "Linux"
		if (field_os.value == "linux") {

			// "Linux" > "Website hosting"
			if (field_type.value == "website") {
				// Aantal subdomeinen
				clearSelectbox(field_subdom);
				createOption(field_subdom, 'onbeperkt', '', false);
				// DNS Beheer
				field_dns_0.checked=false;
				field_dns_1.checked=true;
				field_dns_0.disabled=false;
				field_dns_1.disabled=false;
				// Dataverkeer
				field_dataverkeer.disabled=false;
				field_dataverkeer.className='input';
				// MySQL
				field_mysql.disabled=false;
				field_mysql.className='input';
				// FTP
				clearSelectbox(field_ftp);
				createOption(field_ftp, 'onbeperkt', '', false);
				// Control Panel
				clearSelectbox(field_cp);
				createOption(field_cp, 'Direct Admin', '', false);
			}

			// "Linux" > "E-mail hosting"
			else if (field_type.value == "email") {
				// Aantal subdomeinen
				clearSelectbox(field_subdom);
				createOption(field_subdom, 'n.v.t.', '', false);
				// DNS Beheer
				field_dns_0.checked=true;
				field_dns_1.checked=false;
				field_dns_0.disabled=true;
				field_dns_1.disabled=true;
				// Dataverkeer
				field_dataverkeer.disabled=true;
				field_dataverkeer.className='input-disabled';
				// MySQL
				field_mysql.disabled=true;
				field_mysql.className='input-disabled';
				// FTP
				clearSelectbox(field_ftp);
				createOption(field_ftp, 'n.v.t.', '', false);
				// Control Panel
				clearSelectbox(field_cp);
				createOption(field_cp, 'n.v.t.', '', false);
			}

		}

	}

	validateForm();

}

// vul standaard waarden in voor gekozen OS
function fillDefault(os) {

	// Type Hosting
	field_type.disabled=false;
	field_type.className='input';
	// Ruimte
	field_ruimte.disabled=false;
	field_ruimte.className='input';
	// POP3
	field_pop.disabled=false;
	field_pop.className='input';

	// Standaard waarden voor Linux
	if (os == "linux") {
		// Type Hosting
		clearSelectbox(field_type);
		createOption(field_type, 'E-mail hosting', 'email', false);
		createOption(field_type, 'Website hosting', 'website', false);
		// Aantal subdomeinen
		clearSelectbox(field_subdom);
		createOption(field_subdom, 'n.v.t.', '', false);
		// Aantal domeinen
		field_domeinen.disabled=false;
		field_domeinen.className='input';
		// DNS Beheer
		field_dns_0.checked=true;
		// Dataverkeer
		field_dataverkeer.disabled=true;
		field_dataverkeer.className='input-disabled';
		// FTP
		clearSelectbox(field_ftp);
		createOption(field_ftp, 'n.v.t.', '', false);
		// Control Panel
		clearSelectbox(field_cp);
		createOption(field_cp, 'n.v.t.', '', false);
	} 

	// Standaard waarden voor Windows
	else if (os == "windows") {
		// Type Hosting
		clearSelectbox(field_type);
		createOption(field_type, 'Website hosting', 'website', false);
		// Aantal subdomeinen
		createOption(field_subdom, 'onbeperkt', '', false);
		// Aantal domeinen
		clearSelectbox(field_subdom);
		field_domeinen.disabled=false;
		field_domeinen.className='input';
		// DNS Beheer
		field_dns_0.checked=false;
		field_dns_1.checked=true;
		field_dns_0.disabled=false;
		field_dns_1.disabled=false;
		// Dataverkeer
		field_dataverkeer.disabled=false;
		field_dataverkeer.className='input';
		// MSSQL
		field_mssql.disabled=false;
		field_mssql.className='input';
		// MySQL
		field_mysql.disabled=false;
		field_mysql.className='input';
		// FTP
		clearSelectbox(field_ftp);
		createOption(field_ftp, 'onbeperkt', '', false);
		// Control Panel
		clearSelectbox(field_cp);
		createOption(field_cp, 'Plesk', '', false);
	}

}

// reset het formulier
function resetForm() {
	field_type.disabled=true;
	field_type.className='input-disabled';
	clearSelectbox(field_type);
	createOption(field_type, '-- Kies een besturingssysteem svp --', '', false);

	clearSelectbox(field_subdom);
	createOption(field_subdom, '-- Kies een besturingssysteem svp --', '', false);

	field_domeinen.disabled=true;
	field_domeinen.className='input-disabled';

	field_dns_0.checked=false;
	field_dns_1.checked=false;
	field_dns_0.disabled=true;
	field_dns_1.disabled=true;

	field_ruimte.disabled=true;
	field_ruimte.className='input-disabled';

	field_dataverkeer.disabled=true;
	field_dataverkeer.className='input-disabled';

	field_pop.disabled=true;
	field_pop.className='input-disabled';

	field_mssql.disabled=true;
	field_mssql.className='input-disabled';

	field_mysql.disabled=true;
	field_mysql.className='input-disabled';

	clearSelectbox(field_ftp);
	createOption(field_ftp, '-- Kies een besturingssysteem svp --', '', false);

	clearSelectbox(field_cp);
	createOption(field_cp, 'onbekend', '', false);
}

function validateForm() {
	if (field_os.value == "linux") {

		if (field_type.value == "email") {
			if ((field_domeinen.value > 0) && (field_ruimte.value > 0) && (field_pop.value > 0)) {
				document.getElementById('submit').disabled=false;
				document.getElementById('submit').className='submit';
			} else {
				document.getElementById('submit').disabled=true;
				document.getElementById('submit').className='submit-disabled';
			}
		}

		else if (field_type.value == "website") {
			if ((field_domeinen.value > 0) && (field_ruimte.value > 0) && (field_dataverkeer.value > 0) && (field_pop.value > 0)) {
				document.getElementById('submit').disabled=false;
				document.getElementById('submit').className='submit';
			} else {
				document.getElementById('submit').disabled=true;
				document.getElementById('submit').className='submit-disabled';
			}
		}

	}

	else if (field_os.value == "windows") {

		if (field_type.value == "website") {
			if ((field_domeinen.value > 0) && (field_ruimte.value > 0) && (field_dataverkeer.value > 0) && (field_pop.value > 0)) {
				document.getElementById('submit').disabled=false;
				document.getElementById('submit').className='submit';
			} else {
				document.getElementById('submit').disabled=true;
				document.getElementById('submit').className='submit-disabled';
			}
		}

	}
}
