/* HOVER CODE */
sfHover = function() {
	delayedMenu = "";
	var menu = YAHOO.util.Dom.get("mainMenu");
	if (menu) {
		var sfEls = menu.getElementsByTagName("LI");
		for (var i=0; i<sfEls.length; i++) {
			YAHOO.util.Event.addListener(sfEls[i],"mouseover",addHoverClass);
			YAHOO.util.Event.addListener(sfEls[i],"mouseout",removeHoverClass);
		}
	}
}

addHoverClass = function() {
	if(delayedMenu) {
		clearTimeout(delayedMenu);
		removeClasses();
	}
	YAHOO.util.Dom.addClass(this,"sfhover");
}

removeClasses = function() {
	tempObjects = YAHOO.util.Dom.getElementsByClassName("sfhover");
	if(tempObjects.length > 0){
		for(var i=0; i<tempObjects.length; i++) {
			YAHOO.util.Dom.removeClass(tempObjects,"sfhover");
		}
	}
}

removeHoverClass = function() {
	var tempObj = this;
	
	removeClass = function() {
		YAHOO.util.Dom.removeClass(tempObj,"sfhover");
	}
	
	delayedMenu = window.setTimeout(removeClass,1000);
}



function popup(e, props) {
    YAHOO.util.Event.preventDefault(e);
    props = props || {};
    var origin = window;
    var windowName = props["name"] || "vandale";
    var windowWidth = props["width"] || 600;
    var windowHeight = props["height"] || 400;
    var windowResizable = props["resizable"] || 0;
    var windowScrollbars = props["scrollbars"] || 0;
    var centerWidth = ((window.screen.width - windowWidth) / 2);
    var centerHeight = ((window.screen.height - windowHeight) / 2);
    
    var properties = "scrollbars=" + windowScrollbars + ",resizable=" + windowResizable + ", width=" + windowWidth + ",height=" + windowHeight + ",left=" + centerWidth + ",top=" + centerHeight;
    var newWindow = origin.open(this.href, windowName, properties);
    newWindow.focus();
    return;
}

function initPopUpLinks() {
	var popupLinks = YAHOO.util.Dom.getElementsByClassName("popup", "a");
    for (var i = 0; i < popupLinks.length; i++) {
        YAHOO.util.Event.on(popupLinks[i], "click", popup, {width: 600, height: 400, scrollbars: 1, resizable: 1 });
    }
}

function levelDivs(divArray) {
	if (!YAHOO.lang.isArray(divArray)) {
		return false;
	} else {
		for (var i = 0; i < divArray.length; i++) {
			if (YAHOO.lang.isString(divArray[i])) {
				divArray[i] = YAHOO.util.Dom.get(divArray[i]);
			}
		}
		if (divArray[0] && divArray[1]) {
			var d1    = divArray[0];
			var d2    = divArray[1];
			var regD1 = YAHOO.util.Dom.getRegion(divArray[0]);
			var regD2 = YAHOO.util.Dom.getRegion(divArray[1]);
			var hD1   = regD1.bottom - regD1.top;
			var hD2   = regD2.bottom - regD2.top;
			
			var diff = hD1 - hD2;
			if (diff < 0) {
				YAHOO.util.Dom.setStyle(d1, "height", hD2 + "px");
			
			// Pictorials higher; adjust Panels height and search box position
			} else if (diff > 0) {
				YAHOO.util.Dom.setStyle(d2, "height", hD1 + "px");
			}
			return diff;
		} else {
			return false;
		}
	}
}

function initHomepage() {
	sfHover();
	var leveled = levelDivs(["pictorials", "panels"]);
	if ((leveled !== false) && YAHOO.lang.isNumber(leveled) && (leveled > 0)) {
		var dSearchbox = YAHOO.util.Dom.get("searchPanel");
		if (dSearchbox) {
			var sbTop = YAHOO.util.Dom.getY(dSearchbox);
			YAHOO.util.Dom.setY(dSearchbox, sbTop + leveled);
		}
	}
}

function initProductDetailPage() {
	var divs = YAHOO.util.Dom.get(["pdTop", "pdBottom"]);
	for (var i = 0; i < divs.length; i++) {
		var boxes = YAHOO.util.Dom.getElementsByClassName("box", "div", divs[i]);
		levelDivs(boxes);
	}
}

function initPopUp() {
	var body = YAHOO.util.Dom.getElementsByClassName("popup", "body");
	if (body[0]) {
		var closers = YAHOO.util.Dom.getElementsByClassName("close", "a", body[0]);
	
		for (var i = 0; i < closers.length; i++) {
			YAHOO.util.Event.on(closers[i], "click", function(e) { YAHOO.util.Event.preventDefault(e); window.close() } );
		}
	}
}

function initProductSelector() {
	var select = YAHOO.util.Dom.get("productSelector");
	if (select) {
		YAHOO.util.Event.on(select, "change", 
							function() {
								var url = this.options[this.selectedIndex].value;
								if (url) { 
									window.location.href = url; 
								} 
							} );
	}
}

function initFalseFriendsSelector() {
	var select = YAHOO.util.Dom.get("selectFalseFriends");
	if (select) {
		YAHOO.util.Event.on(select, "change", 
							function() {
								var url = this.options[this.selectedIndex].value;
								if (url) { 
									window.location.href = url; 
								} 
							} );
	}
}

function submitSearchQuery(e, form) {
	YAHOO.util.Event.preventDefault(e);
	var inputs = form.getElementsByTagName("input");
	if (inputs[0] && (inputs[0].value.length < 3)) {
		YAHOO.util.Event.preventDefault(e);
		alert("Gebruik ten minste 3 letters");
	} else {
		form.submit();
	}
}

function initSearchForm() {
	var forms = YAHOO.util.Dom.getElementsByClassName("searchForm", "form");
	for (var i = 0; i < forms.length; i++) {
		YAHOO.util.Event.on(forms[i], "submit", submitSearchQuery, forms[i]); 
		var links = forms[i].getElementsByTagName("a");
		for (var j = 0; j < links.length; j++) {
			YAHOO.util.Event.on(links[j], 
								"click", 
								function(e) { 
									YAHOO.util.Event.preventDefault(e); 
									var form = YAHOO.util.Dom.getAncestorByTagName(this, "form");
									if (form) {
										submitSearchQuery(e, form);
									} 
								});
		}
	}
}

function isEmailAddr(email) {
	var result = false
	var theStr = new String(email)
	var index = theStr.indexOf("@");
	if (index > 0) {
	var pindex = theStr.indexOf(".",index);
	if ((pindex > index+1) && (theStr.length > pindex+1))
		result = true;
	}

	return result;
}

function checkFalseFriendForm(e, form) {
	YAHOO.util.Event.preventDefault(e);
	if ( form.valsevriend.value == '' || form.taal.value == '' || form.naam.value == '' || form.email.value == '' ) {
		alert('U dient alle * velden in te vullen');
		return false;
	} else  {
		if (! isEmailAddr(form.email.value)) {
			alert('Het door u ingevulde e-mailadres is onjuist.');
			return false
		} else {
			form.submit();
			return true;				
		}
	}
}
	
function initFalseFriendForm() {
	var form = YAHOO.util.Dom.get("submitFalseFriends");
	if (form) {
		YAHOO.util.Event.on(form, "submit", checkFalseFriendForm, form);
	}
}

function checkContactAfkortingForm(e, form) {
	YAHOO.util.Event.preventDefault(e);
	if ( form.contactafkorting.value == '' || form.naam.value == '' || form.email.value == '' ) {
		alert('U dient alle * velden in te vullen');
		return false;
	} else  {
		if (! isEmailAddr(form.email.value)) {
			alert('Het door u ingevulde e-mailadres is onjuist.');
			return false
		} else {
			form.submit();
			return true;				
		}
	}
}
	
function initContactAfkortingForm() {
	var form = YAHOO.util.Dom.get("submitContactAfkorting");
	if (form) {
		YAHOO.util.Event.on(form, "submit", checkContactAfkortingForm, form);
	}
}

function checkPuzzleForm(e, form) {
	YAHOO.util.Event.preventDefault(e);
	if ( form.straat.value == '' || form.voornaam.value == '' || form.postcode.value == '' || form.achternaam.value == '' || form.email.value == '' || form.woonplaats.value == '' ) {
		alert('U dient alle * velden in te vullen');
		return false;
	} else  {
		if (! isEmailAddr(form.email.value)) {
			alert('Het door u ingevulde e-mailadres is onjuist.');
			return false
		} else {
			form.submit();
			return true;
		}
	}
}

function initPuzzleForm() {
	var form = YAHOO.util.Dom.get("puzzleForm");
	if (form) {
		YAHOO.util.Event.on(form, "submit", checkPuzzleForm, form);
	}
}

function checkWordOfTheWeekForm(e, form) {
	YAHOO.util.Event.preventDefault(e);
	if ( form.naam.value == '' || form.email.value == '' || form.woordvandeweek.value == '' ) {
		alert('U dient alle * velden in te vullen');
		return false;
	} else  {
		if (! isEmailAddr(form.email.value)) {
			alert('Het door u ingevulde e-mailadres is onjuist.');
			return false
		} else {
			form.submit();
			return true;
		}
	}
}

function initWordOfTheWeekForm() {
	var form = YAHOO.util.Dom.get("submitWordOfTheWeek");
	if (form) {
		YAHOO.util.Event.on(form, "submit", checkWordOfTheWeekForm, form);
	}
}


/*

	<!-- START email check script -->
	<script language="JavaScript" type="text/javascript">
	<!--
	function submitCheck()
	{
		if ( document.forms['reactform'].aname.value == '' || document.forms['reactform'].email.value == '' || document.forms['reactform'].vname.value == '' ) {
			alert('U dient alle * velden in te vullen');
			return false;
		} else  {
			if (! isEmailAddr(document.forms['reactform'].email.value))
			{
				alert('Het door u ingevulde e-mailadres is onjuist.');
				return false
			} else {
				return true;
			}
		}
	}
	// -->
	</script>
	<!-- END email check script -->
	<script language="JavaScript">
	<!--
	function Afmelden() {
	  document.reactform.fid.value="afmelden";
	}
	function Aanmelden() {
	  document.reactform.fid.value="aanmelden";
	}
	//-->
	</script>
*/

function checkNewsletterForm(e, form) {
	YAHOO.util.Event.preventDefault(e);
	if ( (form.aname.value) == '' || (form.email.value == '') || (form.vname.value == '') ) {
		alert('U dient alle * velden in te vullen');
		return false;
	} else  {
		if (! isEmailAddr(form.email.value)) {
			alert('Het door u ingevulde e-mailadres is onjuist.');
			return false
		} else {
			form.submit();
			return true;
		}
	}
}


function initNewsletterForm() {
	var form = YAHOO.util.Dom.get("newsletterForm");
	if (form) {
		var subBtn = document.getElementById("subscribe");
		var unsubBtn = document.getElementById("unsubscribe");
		
		if (subBtn && YAHOO.util.Dom.isAncestor(form, subBtn)) {
			YAHOO.util.Event.on(subBtn, "click", function() { form.fid.value = "aanmelden"; } );
		}
		if (unsubBtn && YAHOO.util.Dom.isAncestor(form, unsubBtn)) {
			YAHOO.util.Event.on(unsubBtn, "click", function() { form.fid.value = "afmelden"; } );
		}
		
		YAHOO.util.Event.on(form, "submit", checkNewsletterForm, form);
	}
}

/************************************************/
/* TOGGLE EXTRA COMPANY INFO                    */
/* @subscriptionOrderForm.jsp                   */
/************************************************/
function initToggleExtraInfo() {
	var checkBoxItem = YAHOO.util.Dom.get("fldIsCompany");
	YAHOO.util.Event.addListener(checkBoxItem,"click",checkToggleState,this);
}

function checkToggleState(e, obj,t) {
	if(!t){
		t = this;
	}
	var companyInfoItem = YAHOO.util.Dom.get("conditionalCompanyInfo");
	var consumerOnlyInfo = YAHOO.util.Dom.getElementsByClassName("onlyConsumer", "div", "clientInfo");
	if(t.checked){
		for (var i = 0; i < consumerOnlyInfo.length; i++) {
			YAHOO.util.Dom.addClass(consumerOnlyInfo, "isNotVisible");
		}
		YAHOO.util.Dom.addClass("isForCompany","isVisible");
		YAHOO.util.Dom.removeClass("isForConsumer","isVisible");
		YAHOO.util.Dom.addClass(companyInfoItem,"showCompanyInfo");	
	} else {
		for (var i = 0; i < consumerOnlyInfo.length; i++) {
			YAHOO.util.Dom.removeClass(consumerOnlyInfo, "isNotVisible");
		}
		YAHOO.util.Dom.removeClass("isForCompany","isVisible");
		YAHOO.util.Dom.addClass("isForConsumer","isVisible");
		YAHOO.util.Dom.removeClass(companyInfoItem,"showCompanyInfo");	
	}
}

/************************************************/
/* TOGGLE LICENSE FIELD                         */
/* @subscriptionOrderForm.jsp                   */
/************************************************/
function initToggleLicenseField() {
	var checkBoxItem = YAHOO.util.Dom.getElementsByClassName("productCheckBox");
	for(var i=0; i<checkBoxItem.length; i++) {
		checkBoxItem[i].uniqueNr = i;
		YAHOO.util.Event.addListener(checkBoxItem[i],"click",doToggleLicenseField,this);
	}
}
/**
TODO process checkbox instead of radiobutton
added - 
var currentSelection
subscriptionType.jsp changed checkbox to radio
added doToggleLicensefield.ADDED part
hide Total price calc from subscriptionOrderForm.jsp 
**/

var currentSelection = null;

function doToggleLicenseField(e,obj) {
	var fldLicense = YAHOO.util.Dom.get("fldLicence_" + this.uniqueNr);
	if(this.checked){
		/** ADDED 
		if (currentSelection != null && currentSelection != fldLicense) {
			disableSubscription(currentSelection);
			changePriceDo(currentSelection); 	
		}
		currentSelection = fldLicense;
		 ADDED **/
		fldLicense.removeAttribute("disabled");	
		fldLicense.value = 1;
		// add class to parent container to use different style for selected items
		YAHOO.util.Dom.addClass(this.parentNode.parentNode,"selectedSubscription");
	} else {
		disableSubscription(fldLicense);		
	}
	changePriceDo(fldLicense);
}

function disableSubscription(fldLicense) {
		fldLicense.setAttribute("disabled","disabled");
		fldLicense.value = 0;
		// remove class to parent container to use different style for selected item
		YAHOO.util.Dom.removeClass(fldLicense.parentNode.parentNode,"selectedSubscription");
		
}

/************************************************/
/* ADD ERROR                                    */
/* @subscriptionOrderForm.jsp                   */
/************************************************/
function addError(msg) {
	// shows an one line error message... the application cannot be used anymore 
	var errorContainer = YAHOO.util.Dom.get("subscriptionError");
	var errorList = errorContainer.getElementsByTagName("ul")[0];
	if(errorList.getElementsByTagName("li").length == 0) {
		var listNode = document.createElement("li");
		var listNodeText = document.createTextNode(msg);
		listNode.appendChild(listNodeText);
		errorList.appendChild(listNode);
		YAHOO.util.Dom.addClass(errorContainer,"errorsTrue");
	}
}

function hideError() {
	
	//var errorContainer = YAHOO.util.Dom.get("subscriptionError");
	//var errorList = errorContainer.getElementsByTagName("ul")[0];
	
	//for(var i=errors.length; i>0; i--) {
		//errorContainer.removeChild(errors[i]);
	//}
	//YAHOO.util.Dom.removeClass(errorContainer,"errorsTrue");
}


/************************************************/
/* CHANGE PRICE                                 */
/* @subscriptionOrderForm.jsp                   */
/************************************************/
function initChangePrice() {
	// get all license fields
	var fldLicense = YAHOO.util.Dom.getElementsByClassName("chooseLicense");
	for(var i=0; i<fldLicense.length; i++) {
		YAHOO.util.Event.addListener(fldLicense[i],"keyup",changePriceDo,fldLicense[i]);
	}
}

function changePriceDo(o) {
	var textfieldObj = null;
	var licenceLimit = 10;
	if(o.type == "text"){
		textfieldObj = o;
	} else {
		textfieldObj = this.getElementsByTagName("input")[0];
	}
	calculatePrice(textfieldObj,textfieldObj.value, licenceLimit);
	try {
		var subscrErrorContainer = findSubscriptionErrorContainer(textfieldObj);
		if (textfieldObj.value > licenceLimit) { //max number of licenses					
			YAHOO.util.Dom.addClass(subscrErrorContainer, 'isVisible');
			disabled[textfieldObj.id] = true;
			toggleSubmit(false,"butSubmitSubscription");
		} else {
			YAHOO.util.Dom.removeClass(subscrErrorContainer, 'isVisible');
			disabled[textfieldObj.id] = false;
			if (!isPaymentDisabled()) {
				toggleSubmit(true,"butSubmitSubscription");
			}			
		}
	} catch(ex) {} //in case NaN
	
}

function findSubscriptionErrorContainer(textFieldObj) {
	var subscriptionRow = textFieldObj.parentNode.parentNode;
	var div =  YAHOO.util.Dom.getElementsByClassName( 'subscriptionError' , 'div' , subscriptionRow)[0];
	return div;
}

function calculatePrice(o,val, limit) {
	try {
		if (val > 0 && val <= limit) {
			getPrice(o,val, limit);
		} else {
			showNewPrice(o,{euros:0, cents:0, error:""}, limit);
		}
	} catch (ex) { 
		// value not a number or something... nothing happens
	}
}

function showNewPrice(o,price, limit) {
	var priceContainer = YAHOO.util.Dom.getElementsByClassName("subscriptionTotalPrice","div",o.parentNode.parentNode)[0];
	var priceInput = priceContainer.getElementsByTagName("input")[0];
	var priceInfoContainer = priceContainer.getElementsByTagName("div")[0];
	var maxLicenseInfo = priceContainer.getElementsByTagName("div")[1];
	var priceObj = priceContainer.getElementsByTagName("span")[0];
	var formattedPrice = formatPrice(price);
	if (o.value > limit) {
		YAHOO.util.Dom.removeClass(maxLicenseInfo,"hidden");
		YAHOO.util.Dom.addClass(priceInfoContainer,"hidden");
		priceObj.innerHTML = '0,00';
		priceInput.value   = 0;
		price = 0;
	} else {
		YAHOO.util.Dom.addClass(maxLicenseInfo,"hidden");
		priceObj.innerHTML = formattedPrice;
		YAHOO.util.Dom.removeClass(priceInfoContainer,"hidden");
		priceInput.value   = formattedPrice;
	}
	calculateTotal();
}
function formatPrice(price) {
	//format to (EE)E,cc (E-Euro, c-cent)
	var formattedPrice = "0,00";
	
	if(price.error != null && price.error.length > 0) {
		addError(price.error);
	} else if(price.euros >= 0 && price.cents >= 0) {
		formattedPrice = price.euros + "";
		formattedPrice += (price.cents < 10) ? ",0":",";
		formattedPrice += price.cents + "";
	} 
	
	return formattedPrice;
}
function calculateTotal() {
	// get total price container
	var prices = YAHOO.util.Dom.getElementsByClassName("subscriptionTotalPrice","div");
	var totalPrice = 0;
	
	for(var i=0; i<prices.length; i++) {
		var price = parseFloat(prices[i].getElementsByTagName("span")[0].innerHTML.replace(",",".")); //change to and parse as float
		
		if(price > 0){ // check wether the price is a number
			totalPrice += price;
		}
	}
	// show total price
	
	totalPrice = parseInt(totalPrice*100); //convert to cents
	var price = {euros:parseInt(totalPrice/100), cents:totalPrice%100}; //create price object for formatting
	var formattedPrice = formatPrice(price);
	YAHOO.util.Dom.get("totalCalculatedPrice").innerHTML = formattedPrice;
	YAHOO.util.Dom.get("totalCalculatedPriceInput").value = formattedPrice;
}
function recalculateAll() {
	var licenseNoInput = null;
	var i = 0;
	do {
	  licenseNoInput = YAHOO.util.Dom.get("fldLicence_"+i);
	  if (licenseNoInput != null) {
	  	changePriceDo(licenseNoInput);
	  }
	  i++;
	} while (licenseNoInput != null);
}
/************************************************/
/* INIT DATASOURCE                              */
/* @subscriptionOrderForm.jsp                   */
/************************************************/
var priceDataSource = null;
var myDataSource = null;
	
function initDatasource() {
	myDataSource = new YAHOO.util.DataSource("../webservice/subscription/calculatePrice.do?");
	myDataSource.responseType = YAHOO.util.DataSource.TYPE_XML;
	myDataSource.connTimeout = 5000;
	
	myDataSource.responseSchema = {
		resultNode: "price",
		fields: ["error","euros","cents"]
	};
}

function getPrice(o,val, limit) {		
	var oCallback2 = function(query, oResponse, caller) { 
		if(oResponse.results) {
			showNewPrice(o,oResponse.results[0], limit);
		} else {
			addError("Het ophalen van de prijsinformatie is mislukt.");
		}
	} 
	var uniqueName = YAHOO.util.Dom.getElementsByClassName("uniqueName","input",o.parentNode.parentNode)[0].value;
	var country = YAHOO.util.Dom.get("fldCompanyCountry").value;
	var isCompany = YAHOO.util.Dom.get("fldIsCompany").checked ? "yes" : "no";
	try {
		myDataSource.sendRequest("subscriptionName=" + uniqueName + "&noOfLicenses=" + val + "&country=" + country + "&isCompany=" + isCompany, oCallback2, this);
	}
	catch (ex) {
		addError("Het ophalen van de prijsinformatie is mislukt. Er is geen verbinding met de server.");
	} 	
}

/* disable submit button / prevent back button */
securePayment = function() {
	// disable back button
	history.go(1);
	YAHOO.util.Event.addListener("butSubmitToDDP","click",disableSubmit);
}
disableSubmit = function(e) {
	//toggleSubmit(false, "butSubmitToDDP");
}
toggleSubmit = function(enable, buttonId) {
	var button = YAHOO.util.Dom.get(buttonId);
	if (enable) {
		button.removeAttribute("disabled");
		YAHOO.util.Dom.setStyle(button,"opacity",1);
	} else {
		button.setAttribute("disabled","disabled");
		YAHOO.util.Dom.setStyle(button,"opacity",0.3);
	}
}

var disabled = {}; //each object trying to disable payment should register itself in this object with unique id

isPaymentDisabled = function() {
	var isDisabled = false;
	for (id in disabled) {	
		if (disabled[id] == true) {
			isDisabled = true;
		}
	}
	return isDisabled;
}

recalculateBTW = function(e,obj) {
	var src = e.target ? e.target : e.srcElement;
	if (src.value == "") { //Anders
		YAHOO.util.Dom.removeClass("changeMsg","isVisible");
		YAHOO.util.Dom.addClass("paymentDisabledMsg","isVisible");
		disabled['countryChange'] = true;
		toggleSubmit(false,"butSubmitSubscription");
	} else {
		recalculateAll();
		YAHOO.util.Dom.removeClass("paymentDisabledMsg","isVisible");
		YAHOO.util.Dom.addClass("changeMsg","isVisible");
		disabled['countryChange'] = false;
		if (!isPaymentDisabled()) {
			toggleSubmit(true,"butSubmitSubscription");
		}
	}
}

initSubscriptionForm = function() {
	if(YAHOO.util.Dom.get("subscriptionModule")){
		var checkBoxItem = YAHOO.util.Dom.get("fldIsCompany");
		checkToggleState("","",checkBoxItem);
		toggleSelectedSubscriptionGroups();
	}
	YAHOO.util.Event.addListener("fldCompanyCountry", "change",recalculateBTW);
}
var toggleSelectedSubscriptionGroups = function() {
	var checkBoxItem = YAHOO.util.Dom.getElementsByClassName("productCheckBox");
	for(var i=0; i<checkBoxItem.length; i++) {
		if(checkBoxItem[i].checked) {
			YAHOO.util.Dom.addClass(checkBoxItem[i].parentNode.parentNode.parentNode,"show");
		}
		YAHOO.util.Event.addListener(checkBoxItem[i],"click",doToggleLicenseField,this);
	}
}
var toggleTooltip = function(e, show) {
	var src = e.target ? e.target : e.srcElement;
	toggleError(e, false);
	if (show) {
		YAHOO.util.Dom.addClass(src.parentNode,"focus");
	} else {
		YAHOO.util.Dom.removeClass(src.parentNode,"focus");
	}
}
var toggleError = function(e, show) {
	var src = e.target ? e.target : e.srcElement;
	
	if (show) {
		YAHOO.util.Dom.addClass(src.parentNode,"myIDhasError");
	} else {
		YAHOO.util.Dom.removeClass(src.parentNode,"myIDhasError");
	}
}
var validate = function(e, type) {
	var src = e.target ? e.target : e.srcElement;
	var error = false;
	if (type == "username" || type == "pass") {
		if (src.value.length <= 3) {
			error = true;			
		}
	} else if (type == "passMatch" || type == "emailMatch") {
		var match = YAHOO.util.Dom.get(src.id+"_match");
		if (match.value != src.value) {
			error = true;
		}
	} else if (type == "email") {
		var regexp = new RegExp("^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$");
		var match = regexp.exec(src.value);
		if (match == null) {
			error = true;
		} 
	}
	
	toggleTooltip(e, false);
	if (error) {
		toggleError(e, true);
	} else {
		toggleError(e, false);
	}
}
initMijnIDRegistrationForm = function() {
	YAHOO.util.Event.addListener("midusername", "focus",toggleTooltip, true);
	YAHOO.util.Event.addListener("midusername", "blur",validate, "username");
	YAHOO.util.Event.addListener("midpassword_match", "focus",toggleTooltip, true);
	YAHOO.util.Event.addListener("midpassword_match", "blur",validate, "pass");
	YAHOO.util.Event.addListener("midpassword", "focus",toggleTooltip, true);
	YAHOO.util.Event.addListener("midpassword", "blur",validate, "passMatch");
	YAHOO.util.Event.addListener("midemail_match", "focus",toggleTooltip, true);
	YAHOO.util.Event.addListener("midemail_match", "blur",validate, "email");
	YAHOO.util.Event.addListener("midemail", "focus",toggleTooltip, true);
	YAHOO.util.Event.addListener("midemail", "blur",validate, "emailMatch");		
} 

/* EVENTS */
YAHOO.util.Event.on(window, "load", initHomepage);
//YAHOO.util.Event.on(window, "load", initProductDetailPage);
YAHOO.util.Event.on(window, "load", initPopUpLinks);
YAHOO.util.Event.on(window, "load", initPopUp);
YAHOO.util.Event.on(window, "load", initProductSelector);
YAHOO.util.Event.on(window, "load", initFalseFriendsSelector);
YAHOO.util.Event.on(window, "load", initSearchForm);
YAHOO.util.Event.on(window, "load", initPuzzleForm);
YAHOO.util.Event.on(window, "load", initFalseFriendForm);
YAHOO.util.Event.on(window, "load", initContactAfkortingForm);
YAHOO.util.Event.on(window, "load", initWordOfTheWeekForm);
YAHOO.util.Event.on(window, "load", initNewsletterForm);
YAHOO.util.Event.on(window, "load", initSubscriptionForm);
YAHOO.util.Event.on(window, "load", initMijnIDRegistrationForm);

/* clear input on focus */
function clearDefault(el) {
  if (el.defaultValue==el.value) el.value = ""
}

function submitCopernicaForm(type, form) {
	var formulier = YAHOO.util.Dom.get(form);
	formulier.wizard.value = type;
	formulier.next.value = formulier.next.value + type
	formulier.submit();
}