// kopieen van form.js, in het Engels

function errorInputEmpty (namen, alerttekst) {
// parameter namen: 1 of meer input-namen, gescheiden door pipelines;
// resultaat is true als alle inputs leeg zijn
	if (!alerttekst) alerttekst = namen;
	var waar = true;
	namen = namen.split ("|");
	for (var i = 0; i < namen.length; i++) {
		waar = (waar && (getInputValue (namen[i]) == ""));
	}
	return errorCondition (waar, namen[0], "Please enter " + alerttekst + ".");
}

function errorNoneSelected (naam, alerttekst) {
// Dit is een beetje slordig! errorNoneSelected wordt hier gedefinieerd als: het eerste item is geselecteerd.
// De functie wordt toegepast op selectobjecten waarvan het eerste item bv luidt: MAAK EEN KEUZE of NIEUW
	if (!alerttekst) alerttekst = naam;
	return errorCondition ((document.forms[0].elements[naam].selectedIndex == 0), naam, "Please select " + alerttekst + ".");
}

function errorNoneChecked (naam, alerttekst) {
	if (!alerttekst) alerttekst = naam;
	var f = document.forms[0];
	var waar = true;
	for (var i = 0; i < f.elements.length; i++) {
		if ((f.elements[i].type == "checkbox") && (f.elements[i].name == naam)) {
			waar = (waar && !f.elements[i].checked);
		}
	}
	if (waar) alert ("Please select " + alerttekst + ".");
	return waar;
}

function errorNoRadioChecked (naam, alerttekst) {
	if (!alerttekst) alerttekst = naam;
	return errorCondition (getInputValue (naam) == null, naam, "Please select " + alerttekst + ".");
}

function errorInputInvalid (naam, re, alerttekst) {
	if (!alerttekst) alerttekst = naam;
	var waarde = getInputValue (naam);
	return errorCondition ((waarde.search (re) != 0), naam, alerttekst + " is not valid.");
}

// einde kopieen van form.js

function getCheckboxlistValue (naam) {
	var f = document.forms[0];
	var waarde = new Array (0);
	for (var i = 0; i < f.elements.length; i++) {
		if ((f.elements[i].type == "checkbox") && (f.elements[i].name == naam)) {
			if (f.elements[i].checked) {
				waarde[waarde.length]=f.elements[i].value;
			}
		}
	}
	return waarde;
}

function formOk () {
	formActie = getInputValue ("formActie");
	switch (formActie) {
		case "aanvraag":
			if (errorNoneChecked ("id_aanvraag[]", "request")) return false;
			if (errorNoneSelected ("geslacht", "gender")) return false;
			if (errorInputEmpty ("voornaam", "first name")) return false;
			if (errorInputEmpty ("achternaam", "last name")) return false;
			if (errorInputEmpty ("email", "e-mail address")) return false;
			if (errorEmailInvalid ("email", "E-mail address")) return false;
			if (errorInputEmpty ("organisatie", "organization name")) return false;
//			if (!webAbonnementAan ()) {
//				if (errorNoneSelected ("id_sector_SELECT", "organization type")) return false;
//				if ((getInputValue ("id_sector_SELECT") == -1) && errorInputEmpty ("id_sector_INPUT", "organization type")) return false;
//				if (errorInputEmpty ("adres1", "Address")) return false;
//				if (errorInputEmpty ("woonplaats", "city")) return false;
//				if (errorInputEmpty ("postcode", "postal code / zip")) return false;
				if (errorNoneSelected ("id_land", "country")) return false;
//				if (abonnementAan () && wederverkoperAan ()) {
//					if (errorInputEmpty ("wederverkoper", "Company name")) return false;
//					if (errorInputEmpty ("referentienummer", "Reference number")) return false;
//				} else {
//					setInputValue ("wederverkoper", "");
//					setInputValue ("referentienummer", "");
//				}
//				if (abonnementAan ()) {
//					if (errorNoneSelected ("betaalwijze", "method of payment")) return false;
//				}
//				if (factuurAan ()) {
//					if (errorInputEmpty ("factuur_adres1", "Address")) return false;
//					if (errorInputEmpty ("factuur_woonplaats", "city")) return false;
//					if (errorInputEmpty ("factuur_postcode", "postal code / zip")) return false;
//					if (errorNoneSelected ("factuur_id_land", "country")) return false;
//				} else {
//					setInputValue ("factuur_adres1", "");
//					setInputValue ("factuur_adres2", "");
//					setInputValue ("factuur_adres3", "");
//					setInputValue ("factuur_woonplaats", "");
//					setInputValue ("factuur_staat", "");
//					setInputValue ("factuur_postcode", "");
//					setInputValue ("factuur_id_land", 0);
//				}
//				if ((getInputValue ("id_contactmethode_SELECT") == -1) && errorInputEmpty ("id_contactmethode_INPUT", "contact method")) return false;
//			}
			break;
		case "abonnee_activeer":
			if (errorInputEmpty ("email", "e-mail address")) return false;
			if (errorEmailInvalid ("email", "e-mail address")) return false;
			break;
		case "abonnee_login":
			if (errorInputEmpty ("email", "e-mail address")) return false;
			if (errorEmailInvalid ("email", "e-mail address")) return false;
// wachtwoord niet meer nodig per 6-2-2010
//			if (errorInputEmpty ("wachtwoord", "password")) return false;
			break;
// wachtwoord niet meer nodig per 6-2-2010
/*
		case "abonnee_wachtwoord":
			if (errorInputInvalid ("wachtwoord", /^[0-9A-Za-z]{6,}$/, "password - should consist of six or more characters (numbers or letters) - ")) return false;
			wachtwoord = getInputValue ("wachtwoord");
			wachtwoord_repeat = getInputValue ("wachtwoord_repeat");
			if (errorCondition (wachtwoord != wachtwoord_repeat, "wachtwoord_repeat", "Password (repeat) differs from password.")) return false;
			break;
*/
		case "debat":
			if (errorInputEmpty ("titel", "title")) return false;
			if (errorInputEmpty ("tekst", "text")) return false;
			if (errorInputEmpty ("naam", "name")) return false;
			if (errorInputEmpty ("email", "e-mail address")) return false;
			if (errorEmailInvalid ("email", "e-mail address")) return false;
			break;
		case "poll":
			if (errorNoRadioChecked ("id_optie", "option")) return false;
			break;
		case "tellafriend":
			if (errorInputEmpty ("email_ontvanger", "recipient's e-mail address")) return false;
			if (errorEmailInvalid ("email_ontvanger", "recipient's e-mail address")) return false;
			if (errorInputEmpty ("email", "your e-mail address")) return false;
			if (errorEmailInvalid ("email", "your e-mail address")) return false;
			break;
	}
	return true;
}

function inputOnChange (obj) {
/*
	if (obj.name == "id_aanvraag[]") checkUitsluiting (obj.value);
	switch (obj.name) {
		case "id_aanvraag[]":
		case "id_land":
		case "is_wederverkoper":
		case "betaalwijze":
		case "zend_factuur":
			syncFormulier ();
			break;
	}
	switch (obj.name) {
		case "kopieer_adres":
			if (obj.checked) {
				setInputValue ("factuur_adres1", getInputValue ("adres1"));
				setInputValue ("factuur_adres2", getInputValue ("adres2"));
				setInputValue ("factuur_adres3", getInputValue ("adres3"));
				setInputValue ("factuur_woonplaats", getInputValue ("woonplaats"));
				setInputValue ("factuur_staat", getInputValue ("staat"));
				setInputValue ("factuur_postcode", getInputValue ("postcode"));
				setInputValue ("factuur_id_land", getInputValue ("id_land"));
			}
			break;
		case "adres1":
		case "factuur_adres1":
			if (getInputValue ("adres1") != getInputValue ("factuur_adres1")) setInputValue ("kopieer_adres", 0);
			break;
		case "adres2":
		case "factuur_adres2":
			if (getInputValue ("adres2") != getInputValue ("factuur_adres2")) setInputValue ("kopieer_adres", 0);
			break;
		case "adres3":
		case "factuur_adres3":
			if (getInputValue ("adres3") != getInputValue ("factuur_adres3")) setInputValue ("kopieer_adres", 0);
			break;
		case "woonplaats":
		case "factuur_woonplaats":
			if (getInputValue ("woonplaats") != getInputValue ("factuur_woonplaats")) setInputValue ("kopieer_adres", 0);
			break;
		case "staat":
		case "factuur_staat":
			if (getInputValue ("staat") != getInputValue ("factuur_staat")) setInputValue ("kopieer_adres", 0);
			break;
		case "postcode":
		case "factuur_postcode":
			if (getInputValue ("postcode") != getInputValue ("factuur_postcode")) setInputValue ("kopieer_adres", 0);
			break;
		case "id_land":
		case "factuur_id_land":
			if (getInputValue ("id_land") != getInputValue ("factuur_id_land")) setInputValue ("kopieer_adres", 0);
			break;
	}
*/
}

function checkUitsluiting (id_aanvraag) {
	if (aanvraagUitsluiting[id_aanvraag]) {
		var f = document.forms[0];
		for (var i = 0; i < f.elements.length; i++) {
			if ((f.elements[i].type == "checkbox") && (f.elements[i].name == "id_aanvraag[]")) {
				if (f.elements[i].value == aanvraagUitsluiting[id_aanvraag]) f.elements[i].checked = false;
			}
		}
	}
}

function aanvraagAan () {
	id_aanvraag = getCheckboxlistValue ("id_aanvraag[]");
	aan = (id_aanvraag.length > 0);
	return aan;
}

function abonnementAan () {
	aan = false;
	id_aanvraag = getCheckboxlistValue ("id_aanvraag[]");
	for (i = 0; i < id_aanvraag.length; i++) {
		naam_aanvraag = getInputValue ("naam_aanvraag_" + id_aanvraag[i]);
		aan = aan || (naam_aanvraag == "abonnement") || (naam_aanvraag == "abonnement via banner");
	}
	return aan;
}

function webAbonnementAan () {
	aan = false;
	id_aanvraag = getCheckboxlistValue ("id_aanvraag[]");
	for (i = 0; i < id_aanvraag.length; i++) {
		naam_aanvraag = getInputValue ("naam_aanvraag_" + id_aanvraag[i]);
		aan = aan || (naam_aanvraag == "webabonnement") || (naam_aanvraag == "webtrial");
	}
	return aan;
}

function factuurAan () {
	return true;
	return (getInputValue ("betaalwijze") == "invoice") || (creditcardAan () && getInputValue ("zend_factuur"));
}

function creditcardAan () {
	return (getInputValue ("betaalwijze") == "credit card");
}

function btwnummerAan () {
	id_land = getInputValue ("id_land");
	if (id_land) {
		return (vraagBtwnummer[id_land] == "1");
	} else {
		return false;
	}
}

function wederverkoperAan () {
	return (getInputValue ("is_wederverkoper") == 1);
}

function buttonOnClick (obj) {
	switch (obj.name) {
		case "aanvraag":
		case "abonnee_activeer":
		case "abonnee_login":
// wachtwoord niet meer nodig per 6-2-2010
//		case "abonnee_wachtwoord":
		case "debat":
		case "poll":
		case "tellafriend":
			submitForm (obj.name);
			break;
	}
}

function syncFormulier () {
	aanvraag_aan = aanvraagAan ();
	abonnement_aan = abonnementAan ();
	factuur_aan = factuurAan ();
	webabonnement_aan = webAbonnementAan ();
	btwnummer_aan = btwnummerAan ();
	creditcard_aan = creditcardAan ();
	wederverkoper_aan = wederverkoperAan ();

	setDisplay ("TR_id_titel", aanvraag_aan && !webabonnement_aan);
	setDisplay ("TR_telefoon", aanvraag_aan && !webabonnement_aan);
	setDisplay ("TR_fax", aanvraag_aan && !webabonnement_aan);
	setDisplay ("TR_functie", aanvraag_aan && !webabonnement_aan);
	setDisplay ("TR_afdeling", aanvraag_aan && !webabonnement_aan);
	setDisplay ("TR_id_sector", aanvraag_aan && !webabonnement_aan);
	setDisplay ("TR_id_land", aanvraag_aan && !webabonnement_aan);
	setDisplay ("TR_kopje_Subscription_reseller", abonnement_aan);
	setDisplay ("TR_is_wederverkoper", abonnement_aan);
	setDisplay ("TR_wederverkoper", abonnement_aan && wederverkoper_aan);
	setDisplay ("TR_referentienummer", abonnement_aan && wederverkoper_aan);
	setDisplay ("TR_kopje_Payment", abonnement_aan);
	if (!abonnement_aan) setInputValue ("betaalwijze", "");
	setDisplay ("TR_betaalwijze", abonnement_aan);
	setDisplay ("TR_btwnummer", abonnement_aan && btwnummer_aan);
	setDisplay ("TR_kopje_Delivery_Address", aanvraag_aan && !webabonnement_aan);
	setDisplay ("TR_adres1", aanvraag_aan && !webabonnement_aan);
	setDisplay ("TR_adres2", aanvraag_aan && !webabonnement_aan);
	setDisplay ("TR_adres3", aanvraag_aan && !webabonnement_aan);
	setDisplay ("TR_woonplaats", aanvraag_aan && !webabonnement_aan);
	setDisplay ("TR_staat", aanvraag_aan && !webabonnement_aan);
	setDisplay ("TR_postcode", aanvraag_aan && !webabonnement_aan);
	setDisplay ("TR_aantal", abonnement_aan);
	if (!(abonnement_aan && creditcard_aan)) setInputValue ("zend_factuur", 0);
	setDisplay ("TR_zend_factuur", abonnement_aan && creditcard_aan);
	setDisplay ("TR_kopje_Invoice_Address", abonnement_aan && factuur_aan);
	setDisplay ("TR_kopieer_adres", abonnement_aan && factuur_aan && !webabonnement_aan);
	setDisplay ("TR_factuur_adres1", abonnement_aan && factuur_aan);
	setDisplay ("TR_factuur_adres2", abonnement_aan && factuur_aan);
	setDisplay ("TR_factuur_adres3", abonnement_aan && factuur_aan);
	setDisplay ("TR_factuur_woonplaats", abonnement_aan && factuur_aan);
	setDisplay ("TR_factuur_staat", abonnement_aan && factuur_aan);
	setDisplay ("TR_factuur_postcode", abonnement_aan && factuur_aan);
	setDisplay ("TR_factuur_id_land", abonnement_aan && factuur_aan);
	setDisplay ("TR_kopje_Other_information", aanvraag_aan && !webabonnement_aan);
	setDisplay ("TR_id_thema[]", aanvraag_aan && !webabonnement_aan);
	setDisplay ("TR_How_did_you_come_in_contact_with_European_Energy_Review_", aanvraag_aan && !webabonnement_aan);
	setDisplay ("TR_id_contactmethode", aanvraag_aan && !webabonnement_aan);
}

function FormulierInit () {
//	if (elementExists ("TR_id_aanvraag[]")) syncFormulier ();
	self.focus ();
}

