var regExpValidUsername	= /^[\w\d_]{5}[\w\d_]*$/i;
var regExpValidPassword	= /^[^\s]{5}[^\s]*$/i;
var regExpValidEmail  	= /^[\w\d_\-]+([\w\d_\.\-]+)?\@[\w\d_\-]+([\w\d_\.\-]+)?(\.[\w]{2})([a-z]?)$/i;
var regExpValidPhone	= /^(\+?[\d ]+|)$/i;
var cartWindow; var profileWindow;

function checkSignupFields(thisForm) {
        var errorMsg = "";

        if (!regExpValidPassword.test(thisForm.password.value)) {
                errorMsg += "- Kies een wachtwoord van tenminste 5 tekens\n";
        } else {
                if (thisForm.password.value != thisForm.password_again.value) {
                        errorMsg += "- Wachtwoord en bevestiging wachtwoord komen niet overeen\n";
                }
        }

        if (thisForm.lastname.value.length == 0 || thisForm.city.value.length == 0 || thisForm.address.value.length == 0 || thisForm.number.value.length == 0 || thisForm.postcode.value.length == 0 ) {
                errorMsg += "- De velden achternaam, adres, huisnummer postcode, en woonplaats zijn verplicht\n";
        }

        if (!regExpValidEmail.test(thisForm.email.value)) {
                errorMsg += "- Vul een geldig email adres in\n";
        }

        if (!regExpValidPhone.test(thisForm.phone.value)) {
                errorMsg += "- Geef alleen cijfers in als telefoonnummer (geen streepjes)\n";
        }

        if (!regExpValidPhone.test(thisForm.fax.value)) {
                errorMsg += "- Geef alleen cijfers in als faxnummer (geen streepjes)\n";
        }

	return errorMsg;
};

function checkPaymentFields(thisForm) {
        var errorMsg = "";

        var BillingOK = 0;
        var HowtopayOK = 0;

        for (i=0;e=thisForm.elements[i];i++) {
                if (e.type=='radio') {
			// Billing choice has been disabled ..
                        //if (e.name=='billing' && e.checked == true) {
                                BillingOK = 1;
                        //}
                        if (e.name=='howtopay' && e.checked == true) {
                                HowtopayOK = 1;
                        }
                };
        };

        if (!BillingOK) {
                errorMsg += "- Geef aan hoe u de rekening thuis wilt ontvangen\n";
        }

        if (!HowtopayOK) {
                errorMsg += "- Geef aan hoe u uw bestelling wil betalen\n";
        }

        return errorMsg;
}

function validateSignupForm(thisForm) {
	var errorMsg = checkSignupFields(thisForm);

	if (errorMsg) {
		alert(errorMsg);
		return false;
	} else {
		return true;
	};

}

function co_validateSignupForm(thisForm) {
	var errorMsg = "";

	errorMsg += checkSignupFields(thisForm);
	errorMsg += checkPaymentFields(thisForm);

	if (errorMsg) {
		alert(errorMsg);
		return false;
	} else {
		return true;
	};
}

function co_validateSetPayment(thisForm) {
	var errorMsg = checkPaymentFields(thisForm);

	if (errorMsg) {
		alert(errorMsg);
		return false;
	} else {
		return true;
	}
}

function validateMailForm(thisForm) {
	var errorMsg = "";
	var testContact = 0;
	
	if (thisForm.name.value.length == 0) {
		errorMsg += "- Voer uw naam in\n";
	};
	
	if (!regExpValidEmail.test(thisForm.email.value)) {
		errorMsg += "- Het e-mail adres dat u heeft ingevoerd is ongeldig.\n";
	};

	if (!regExpValidPhone.test(thisForm.phone.value)) {
		errorMsg += "- Geef alleen cijfers in als telefoonnummer (geen streepjes) of laat leeg\n";
	};

	if (thisForm.reactie.value.length < 5) {
		errorMsg += "- U heeft nog geen bericht ingevoerd\n";
	};
	
	
	if ( (thisForm.email.value.length > 0) || (thisForm.phone.value.length > 0) ) {
		testContact = 1;
	};
	
	if (errorMsg) {
		alert(errorMsg);
	} else {
		if (!testContact) {
			if (confirm("U heeft geen contact informatie ingevoerd. Als u alsnog een e-mail adres, telefoon of faxnummer invoert kunnen wij reageren op uw bericht. Weet u zeker dat u wilt verzenden?")) {
				thisForm.submit();
			};
		} else {
			thisForm.submit();
		}
	}

}

function checkConfirm(thisForm) {
	var errorMsg = "";
	thisForm.submitButton.disabled=true;

	for (i=0;e=thisForm.elements[i];i++) {
		if (e.name == 'f_fax') {

			var billMethod = thisForm.billing[thisForm.billing.selectedIndex].value;

			if ( (billMethod == 'fax') && ((!regExpValidPhone.test(e.value)) || (e.value.length == 0)) ) {
				errorMsg += "- Voer uw faxnummer in (alleen cijfers) indien u de factuur per fax wilt ontvangen\n";
			} else if (!regExpValidPhone.test(e.value)) {
				errorMsg += "- Het faxnummer dat u hebt ingevuld is ongeldig, gebruik alleen cijfers\n";
			};

		} else if (e.name == 'e_email') {

			var billMethod = thisForm.billing[thisForm.billing.selectedIndex].value;

			if ( (billMethod == 'email') && ((!regExpValidEmail.test(e.value)) || (e.value.length == 0)) ) {
				errorMsg += "- Vul een geldig e-mail adres in indien u de factuur per email wilt ontvangen\n";
			} else if (!regExpValidEmail.test(e.value)) {
				errorMsg += "- Het e-mail adres dat u hebt ingevuld is ongeldig\n";
			}

		} else if (e.name == 'confirm_password') {
			if (!regExpValidPassword.test(e.value)) {
				errorMsg += "- Voer een geldig wachtwoord in.\n";
			};
		}
	};

	if (errorMsg) {
		alert(errorMsg);
		thisForm.submitButton.disabled=false;
		return false;
	} else {
		return true;
	}
}


function co_checkLoginForm(thisForm) {
	var errorMsg = "";
    
	alert("Yeah .... we are up .. and doing something .. ....");

	
	if (!regExpValidUsername.test(thisForm.login_username.value)) {
		errorMsg += "- Voer een geldige gebruikersnaam in\n";
	}
	
	if (!regExpValidPassword.test(thisForm.login_password.value)) {
			errorMsg += "- Voer een geldig wachtwoord in\n";
	}
	
	if (errorMsg) {
		alert(errorMsg);
		return false;
	} else {
		return true;
	};
}

function openEditProfile() {

	profileWindow = window.open('', 'profile', 'scrollbars,toolbar=no,directories=no,status=no,menubar=no,width=550,height=500,copyhistory=no')
	profileWindow.location.replace('/cgi-bin/profile.pl?mode=edit');
}

function openNewProfile() {

	profileWindow = window.open('', 'profile', 'scrollbars,toolbar=no,directories=no,status=no,menubar=no,width=550,height=500,copyhistory=no')
	profileWindow.location.replace('/cgi-bin/profile.pl?mode=new');
}

function openShoppingCart(artikelID){

	qString = "?";
	
	if (artikelID) {
		qString += "&artikel=" + artikelID + "";
	}

		cartWindow = window.open('', 'winkelwagen', 'scrollbars,toolbar=no,directories=no,status=no,menubar=no,width=550,height=500,copyhistory=no')
		//cartWindow.location.replace('/cgi-bin/wagen.pl' + qString);
}

function closeShoppingCart() {
	if (cartWindow) {
		cartWindow.close();
	};
}


function reLoadCustomerInfo(addMode) {
	
	if (!window.opener) {
		return;
	} else {

		if (!window.opener.parent.frames['frame_customerinfo']) {
			return; 
		} else {
			window.opener.parent.frames['frame_customerinfo'].location.replace('/cgi-bin/customerinfo.pl?mode=' + addMode + '&' + Math.random() * 20);
		};
		
	};	
}

function hardRefresh() {
	document.location.replace('?hrf=' + Math.random() * 20 + '');
}

function setModeToValueInForm(Element) {
	Element.form.mode.value = Element.value;

}
function logClickOut(url) {
	img = new Image();
	img.src = '/out.txt?link=' + url;
}
