﻿var ns4 = (document.layers) ? true : false;
var ie4 = (document.all) ? true : false;
var moz = (document.getElementById && !document.all) ? true : false;

function objectById(id) {
	if (ns4) return document.layers[id]
	else if (ie4) return document.all.item(id)
	else if (moz) return document.getElementById(id);
	else return document.getElementById(id);
}

function submitenter(e) {
    var keycode = e.keyCode;
    
    if (keycode == 13) {
        $('.input-zoek-submit.purple.alt').click() ;
        return false;
    }
    return true;
}

function validateRegistrationForm() {
    var retVal = true;
    
    var re = new RegExp('^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.(([0-9]{1,3})|([a-zA-Z]{2,3})|(aero|coop|info|museum|name))$');
    var name = $("input[id*='name']");
    var email = $("input[id*='email']");
    var street = $("input[id*='street']").not("input[id*='streetNumber']");
    var streetNumber = $("input[id*='streetNumber']");
    var postcode = $("input[id*='postcode']");
    var woonplats = $("input[id*='woonplats']");
    var checkBox = $("input:checkbox");

    var dates = $('.contactRow select');
    

    if (name.attr('value') == '') {
        retVal = false;
        name.addClass('input-text error');
        $('#lblNameReqMessage').css('visibility', 'visible');
    } else {
        name.removeClass('input-text error');
        name.addClass('input-text');
        $('#lblNameReqMessage').css('visibility', 'hidden');
    }
    if (email.attr('value') == '' || !re.test(email.attr('value'))) {
        retVal = false;
        email.addClass('input-text error');
        $('#lblEmailReqMessage').css('visibility', 'visible');
    } else {
        email.removeClass('input-text error');
        email.addClass('input-text');
        $('#lblEmailReqMessage').css('visibility', 'hidden');
    }    
    
    if (street.attr('value') == '') {
        retVal = false;
        street.addClass('input-text error');
        $('#lblStreetReqMessage').css('visibility', 'visible');
    } else {
        street.removeClass('input-text error');
        street.addClass('input-text');
        $('#lblStreetReqMessage').css('visibility', 'hidden');
    }

    if (streetNumber.attr('value') == '') {
        retVal = false;
        streetNumber.addClass('input-text error');
        $('#lblStreetNumberReqMessage').css('visibility', 'visible');
    } else {
        streetNumber.removeClass('input-text error');
        streetNumber.addClass('input-text');
        $('#lblStreetNumberReqMessage').css('visibility', 'hidden');
    }

    if (postcode.attr('value') == '') {
        retVal = false;
        postcode.addClass('input-text error');
        $('#lblPostcodeReqMessage').css('visibility', 'visible');
    } else {
        postcode.removeClass('input-text error');
        postcode.addClass('input-text');
        $('#lblPostcodeReqMessage').css('visibility', 'hidden');
    }

    if (woonplats.attr('value') == '') {
        retVal = false;
        woonplats.addClass('input-text error');
        $('#lblWoonplatsReqMessage').css('visibility', 'visible');
    } else {
        woonplats.removeClass('input-text error');
        woonplats.addClass('input-text');
        $('#lblWoonplatsReqMessage').css('visibility', 'hidden');
    }
    if (!checkBox.attr('checked')) {
        retVal = false;
        $('#lblTermsReqMessage').css('visibility', 'visible');
    } else {
        $('#lblTermsReqMessage').css('visibility', 'hidden');
    }


    if (dates[0].selectedIndex == 0 || dates[1].selectedIndex == 0 || dates[2].selectedIndex == 0) {
        retVal = false;
        $('#lblBirthDateReqMessage').css('visibility', 'visible');
    } else {
        $('#lblBirthDateReqMessage').css('visibility', 'hidden');
    }

    $("#isValid").attr('value', retVal);     

    return retVal;
}










function checkClickButton(form) {
	if (!(!window.event || window.event.keyCode != 13)) {
		return redirectToSearchPage(form);
	}
	return true;
}

function redirectToSearchPage(form) {
	var searchTerm = form.search.value;
	var groupValues = form.searchLocation;
	var radioValue = '';
	var i = 0;
	for (; i != groupValues.length; i++) {
		if (groupValues[i].checked) {
			radioValue = groupValues[i].value;
			break;
		}
	}
	window.location.href = currentPath + '?search=' + searchTerm + '&searchLocation=' + radioValue;
	return false;
}

function checkEmailValidReset() {
	var re = new RegExp('^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.(([0-9]{1,3})|([a-zA-Z]{2,3})|(aero|coop|info|museum|name))$');
	var email = $("#email").attr('value');
	if (email == '' || !re.test(email)) {
	    $("#email").addClass("errorfield");
		$("#isValid").attr('value','false');
		
		return false;
	} else {
	$("#email").removeClass("errorfield");
		$("#isValid").attr('value','true');		
		return true;
	}
}

function validateKennisDocument() {
	var retVal = true;

	var dataFile = $("input[id*='datafile']");
	var title = $("input[id*='tboxTitle']");
	var project = $("select[id*='ddlMainCategories']");
	var category = $("select[id*='ddlSubCategories']");
	var shortDesc = $("textarea[id*='shortDesc']");
	var author = $("input[id*='tboxAuthor']");

	var shortDescDecodedValue = HtmlDecode(shortDesc.val());

	if (dataFile.val() == '') {
		retVal = false;
		dataFile.addClass('input-text error');
		$('span[id*=reqFileMessage]').css('visibility', 'visible');
	} else {
		dataFile.removeClass('input-text error');
		dataFile.addClass('input-text');
		$('span[id*=reqFileMessage]').css('visibility', 'hidden');
	}

	if (title.val() == '') {
		retVal = false;
		title.addClass('input-text error');
		$('span[id*=reqTitleMessage]').css('visibility', 'visible');
	} else {
		title.removeClass('input-text error');
		title.addClass('input-text');
		$('span[id*=reqTitleMessage]').css('visibility', 'hidden');
	}

	if (project.val() == null) {
	    $('span[id*=reqMainCategorieMessage]').css('visibility', 'visible');
	    retVal = false;
	}
	else {
	    $('span[id*=reqMainCategorieMessage]').css('visibility', 'hidden');
	}

	if (category.val() == null) {
	    $('span[id*=reqSubCategorieMessage]').css('visibility', 'visible');
	    retVal = false;
	}
	else {
	    $('span[id*=reqSubCategorieMessage]').css('visibility', 'hidden');
	}

	if (shortDesc.val() == '' || shortDescDecodedValue == String.fromCharCode(0x00a0)) {
		retVal = false;
		shortDesc.addClass('errorTextarea');
		$('span[id*=reqDescritpionMessage]').css('visibility', 'visible');
	} else {
	    shortDesc.removeClass('errorTextarea');
	    $('span[id*=reqDescritpionMessage]').css('visibility', 'hidden');
	}

	if (author.val() == '') {
		retVal = false;
		author.addClass('input-text error');
		$('span[id*=reqAuthorMessage]').css('visibility', 'visible');
	} else {
		author.removeClass('input-text error');
		author.addClass('input-text');
		$('span[id*=reqAuthorMessage]').css('visibility', 'hidden');
	}

	return retVal;
}

function checkNieuwsbriefValid() {

    var retVal = true;

    var titleField = $('input:radio:checked');
    
    var nameField = $('input[name=colfield1]');
    var lastNameField = $('input[name=colfield3]');
    var organisationField = $('input[name=dbfield357]');
    var postadresField = $('input[name=dbfield358]');
    var postcodeField = $('input[name=dbfield359]');
    var placeField = $('input[name=dbfield360]');
    var countryField = $('input[name=dbfield361]');
    var eMailField = $('input[name=colfield5]');
    var re = new RegExp('^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.(([0-9]{1,3})|([a-zA-Z]{2,3})|(aero|coop|info|museum|name))$');


    if (titleField.length = 0) {
        $('#titleReq').css('visibility', 'visible');
        $('#lblAanhefReqMessage').css('visibility', 'visible');
    }
    else {
        $('#lblAanhefReqMessage').css('visibility', 'hidden');
    }

    if (nameField.attr('value') == '') {
        retVal = false;
        nameField.addClass('input-text error');
        $('#lblNameReqMessage').css('visibility', 'visible');
    } else {
        nameField.removeClass('input-text error');
        nameField.addClass('input-text');
        $('#lblNameReqMessage').css('visibility', 'hidden');
    }

    if (lastNameField.attr('value') == '') {
        retVal = false;
        lastNameField.addClass('input-text error');
        $('#lblAchternaamReqMessage').css('visibility', 'visible');
    } else {
        lastNameField.removeClass('input-text error');
        lastNameField.addClass('input-text');
        $('#lblAchternaamReqMessage').css('visibility', 'hidden');
    }

    if (organisationField.attr('value') == '') {
        retVal = false;
        organisationField.addClass('input-text error');
        $('#lblOrganisatieReqMessage').css('visibility', 'visible');
    } else {
        organisationField.removeClass('input-text error');
        organisationField.addClass('input-text');
        $('#lblOrganisatieReqMessage').css('visibility', 'hidden');
    }

    if (postadresField.attr('value') == '') {
        retVal = false;
        postadresField.addClass('input-text error');
        $('#lblPostadresReqMessage').css('visibility', 'visible');
    } else {
        postadresField.removeClass('input-text error');
        postadresField.addClass('input-text');
        $('#lblPostadresReqMessage').css('visibility', 'hidden');
    }
    
    if (postcodeField.attr('value') == '') {
        retVal = false;
        postcodeField.addClass('input-text error');
        $('#lblPostcodeReqMessage').css('visibility', 'visible');
    } else {
        postcodeField.removeClass('input-text error');
        postcodeField.addClass('input-text');
        $('#lblPostcodeReqMessage').css('visibility', 'hidden');
    }

    if (placeField.attr('value') == '') {
        retVal = false;
        placeField.addClass('input-text error');
        $('#lblPlaatsReqMessage').css('visibility', 'visible');
    } else {
        placeField.removeClass('input-text error');
        placeField.addClass('input-text');
        $('#lblPlaatsReqMessage').css('visibility', 'hidden');
    }

    if (countryField.attr('value') == '') {
        retVal = false;
        countryField.addClass('input-text error');
        $('#lblLandReqMessage').css('visibility', 'visible');
    } else {
        countryField.removeClass('input-text error');
        countryField.addClass('input-text');
        $('#lblLandReqMessage').css('visibility', 'hidden');
    }

    if (eMailField.attr('value') == '' || !re.test(eMailField.attr('value'))) {
        retVal = false;
        eMailField.addClass('input-text error');
        $('#lblEmailReqMessage').css('visibility', 'visible');
        
    } else {
        eMailField.removeClass('input-text error');
        eMailField.addClass('input-text');
        $('#lblEmailReqMessage').css('visibility', 'hidden');
    }

    return retVal;
}


function validateNieuwsbriefItem() {
    var retVal = true;

    var intialenField = $('input[name=colfield2]');

    if (intialenField.val() == '') {
        retVal = false;
        intialenField.addClass('input-text error');
    } else {
        intialenField.removeClass('input-text error');
        intialenField.addClass('input-text');
    }
    
    
    var pxProcess = $('input[name=px_process]').attr('value');
    var wizard = $('input[name=wizard]').attr('value');
    var next = $('input[name=next]').attr('value');
    var check = $('input[name=check]').attr('value');
    var account = $('input[name=account]').attr('value');
    var collection = $('input[name=collection]').attr('value');
    var documentCopernica = $('input[name=document]').attr('value');
    var embedded = $('input[name=embedded]').attr('value');
    var contentType = $('input[name=contenttype]').attr('value');
    var dbFields = $('input[name=dbfields]').attr('value');
    var colFields = $('input[name=colfields]').attr('value');
    var radio = $('input[name=aanhef]:checked').val();

    //if (($('input[name=aanhef]'))[1].chcked) {radio = $('input[name=aanhef]')[1].attr('value'); }
    //else { radio = $('input[name=aanhef]')[2].attr('value'); }

    var initialen = $('input[name=colfield2]').attr('value');
    var name = $('input[name=colfield1]').attr('value');
    var midleName = $('input[name=colfield4]').attr('value');
    var lastName = $('input[name=colfield3]').attr('value');
    var organisation = $('input[name=dbfield357]').attr('value');
    var postadres = $('input[name=dbfield358]').attr('value');
    var postcode = $('input[name=dbfield359]').attr('value');
    var place = $('input[name=dbfield360]').attr('value');
    var country = $('input[name=dbfield361]').attr('value');
    var eMail = $('input[name=colfield5]').attr('value');
    var telephone = $('input[name=colfield6]').attr('value');
    //var twoColumns = $('input[name=colfield17]').attr('value');
    var nieuwsbrief = $('input[name=colfield17]').attr('value');

    var reqStr = "?px_process=" + encodeURIComponent(pxProcess) + "&wizard=" + encodeURIComponent(wizard) + "&next=" + encodeURIComponent(next) + "&check=" + encodeURIComponent(check) + "&account=" + encodeURIComponent(account) + "&collection=" + encodeURIComponent(collection) + "&document=" + encodeURIComponent(documentCopernica) + "&embedded=" + encodeURIComponent(embedded)
                   + "&contenttype=" + encodeURIComponent(contentType) + "&dbfields=" + encodeURIComponent(dbFields) + "&colfields=" + encodeURIComponent(colFields) + "&colfield12=" + encodeURIComponent(radio) + "&colfield2=" + encodeURIComponent(initialen) + "&colfield1=" + encodeURIComponent(name) + "&colfield4=" + encodeURIComponent(midleName) + "&colfield3=" + encodeURIComponent(lastName)
                   + "&dbfield357=" + encodeURIComponent(organisation) + "&dbfield358=" +encodeURIComponent(postadres) + "&dbfield359=" + encodeURIComponent(postcode) + "&dbfield360=" + encodeURIComponent(place) + "&dbfield361=" + encodeURIComponent(country) + "&colfield5=" + encodeURIComponent(eMail) + "&colfield6=" + encodeURIComponent(telephone)
                   + "&colfield17=" + encodeURIComponent(nieuwsbrief);
    var url = "http://publisher.copernica.nl" + reqStr;

    alert(url);
        

    var form = createElement("form", { action: "http://publisher.copernica.nl", method: "POST", style: "display: none" })
    
    form.appendChild(createElement("input", { type: "hidden", name: "px_process", value: pxProcess }));
    form.appendChild(createElement("input", { type: "hidden", name: "wizard", value: wizard }));
    form.appendChild(createElement("input", { type: "hidden", name: "next", value: next }));
    form.appendChild(createElement("input", { type: "hidden", name: "check", value: check }));
    form.appendChild(createElement("input", { type: "hidden", name: "account", value: account }));
    form.appendChild(createElement("input", { type: "hidden", name: "collection", value: collection }));
    form.appendChild(createElement("input", { type: "hidden", name: "document", value: documentCopernica }));
    form.appendChild(createElement("input", { type: "hidden", name: "embedded", value: embedded }));
    form.appendChild(createElement("input", { type: "hidden", name: "contenttype", value: contentType }));
    form.appendChild(createElement("input", { type: "hidden", name: "dbields", value: dbFields }));
    form.appendChild(createElement("input", { type: "hidden", name: "colfields", value: colFields }));

    form.appendChild(createElement("input", { type: "hidden", name: "colfield2", value: initialen }));
    form.appendChild(createElement("input", { type: "hidden", name: "colfield1", value: name }));
    form.appendChild(createElement("input", { type: "hidden", name: "colfield4", value: midleName }));
    form.appendChild(createElement("input", { type: "hidden", name: "colfield3", value: lastName }));
    form.appendChild(createElement("input", { type: "hidden", name: "dbfield357", value: organisation }));
    form.appendChild(createElement("input", { type: "hidden", name: "dbfield358", value: postadres }));
    form.appendChild(createElement("input", { type: "hidden", name: "dbfield359", value: postcode }));
    form.appendChild(createElement("input", { type: "hidden", name: "dbfield360", value: place }));
    form.appendChild(createElement("input", { type: "hidden", name: "dbfield361", value: country }));
    form.appendChild(createElement("input", { type: "hidden", name: "colfield5", value: eMail }));
    form.appendChild(createElement("input", { type: "hidden", name: "colfield17", value: nieuwsbrief }));

    document.body.appendChild(form);
    form.submit();
    document.body.removeChild(form);
    //document.location.href = url;
    return false;  
    
}

function setSelectedMonth(month,year) {
	$('#filterMonth option[value=' + month + ']').attr('selected', 'yes');
	$('#filterYear option[value=' + year + ']').attr('selected', 'yes');
}

function validateCalendarItem() {
	var retVal = true;

	var validDateRegEx = new RegExp("[0-9]{2}-[0-9]{2}-[0-9]{4}");
    var validTimeRegEx = new RegExp("[0-9]{2}:[0-9]{2}");

    var endDate = $('#endDate');
    var title = $('#title');
    var startTime = $('#startTime');
    var endTime = $('#endTime');
     var startDate = $('#startDate');

    if(title.attr('value') == '') {
        $('#titleReq').attr('style', 'display: inline');
        $('#reqTitleMessage').attr('style', 'visibility: visible');
        title.addClass('error');
        retVal = false;
    }
    else  {
        $('#titleReq').attr('style', 'display: none');
        $('#reqTitleMessage').attr('style', 'visibility: hidden');
        title.removeClass('error');
       }


       if (!validDateRegEx.test(startDate.attr('value'))) {
           $('#startDateReq').attr('style', 'display: inline');
           $('#reqDateMessage').attr('style', 'visibility: visible');
           startDate.addClass('error');
           retVal = false;
    }
    else  {
        $('#startDateReq').attr('style', 'display: none');
        $('#reqDateMessage').attr('style', 'visibility: hidden');
        startDate.removeClass('error');
    }

    $("#isValid").attr('value', retVal);
 
	return retVal;
}

function validateNewProjectDocument() {
	var retVal = true;

	var dataFile = $("input[id*='datafile']");
	var title = $("input[id*='tboxTitle']");
	var project = $("select[id*='ddlProjects']");
	var category = $("select[id*='ddlCategories']");
	var shortDesc = $("textarea[id*='shortDesc']");
	var author = $("input[id*='tboxAuthor']");

	var shortDescDecodedValue = HtmlDecode(shortDesc.val());

	if (dataFile.val() == '') {
		retVal = false;
		dataFile.addClass('input-text error');
		$('span[id*=reqFileMessage]').css('visibility', 'visible');
	} else {
	    dataFile.removeClass('input-text error');
	    dataFile.addClass('input-text');
	    $('span[id*=reqFileMessage]').css('visibility', 'hidden');
	}

	if (title.val() == '') {
		retVal = false;
		title.addClass('input-text error');
		$('span[id*=reqTitleMessage]').css('visibility', 'visible');
	} else {
	    title.removeClass('input-text error');
	    title.addClass('input-text');
	    $('span[id*=reqTitleMessage]').css('visibility', 'hidden');
	}

	if (project.val() == null) {
	    retVal = false;
	    $('span[id*=reqProjectMessage]').css('visibility', 'visible');
	}
	else {
	    $('span[id*=reqProjectMessage]').css('visibility', 'hidden');
	}
	if (category.val() == null) {
	    retVal = false;
	    $('span[id*=reqCategoryMessage]').css('visibility', 'visible');
	}
	else {
	    $('span[id*=reqCategoryMessage]').css('visibility', 'hidden');
	}
	

	if (shortDesc.val() == '' || shortDescDecodedValue == String.fromCharCode(0x00a0)) {
		retVal = false;
		shortDesc.addClass('errorTextarea');
		$('span[id*=reqDescriptionMessage]').css('visibility', 'visible');
	} else {
	    shortDesc.removeClass('errorTextarea');
	    $('span[id*=reqDescriptionMessage]').css('visibility', 'hidden');
    }

    if (author.val() == '') {
   	    retVal = false;
   	    author.addClass('input-text error');
   	    $('span[id*=reqAuthorMessage]').css('visibility', 'visible');
    } else {
        author.removeClass('input-text error');
        author.addClass('input-text');
        $('span[id*=reqAuthorMessage]').css('visibility', 'hidden');
    }

	return retVal;
}



function validateNewCategory() {
	var retVal = true;

	var category = $("#category");
	var isValid = $("#isValid");

	isValid.attr('value','true');

	if (category.attr('value') == '') {
		category.attr('class','input-text error');
		retVal = false;
		isValid.attr('value','false');
	} else {
	    category.attr('class','input-text');
	}
	return retVal;
}

function validateChangePassword() {
	var retVal = true;

	var oldPassword = $("#oldPassword");
	var oldPasswordReq = $("#oldPasswordReq");

	var newPassword = $("#newPassword");
	var newPasswordReq = $("#newPasswordReq");

	var retypePassword = $("#retypePassword");
	var retypePasswordReq = $("#retypePasswordReq");

	var isPassFormValid = $("#isPassFormValid");

	isPassFormValid.attr('value', true);

	if (oldPassword.val() == '') {
	    oldPasswordReq.css('visibility', 'visible');
	    isPassFormValid.attr('value', false);
	    retVal = false;
	} else {
	    oldPasswordReq.css('visibility', 'hidden');
	}

	if (newPassword.val() == '') {
	    newPasswordReq.css('visibility', 'visible');
	    isPassFormValid.attr('value', false);
	    retVal = false;
	} else {	    
	    newPasswordReq.css('visibility', 'hidden');
	}

	if (retypePassword.val() == '') {
	    retypePasswordReq.css('visibility', 'visible');
		isPassFormValid.attr('value', false);
		retVal = false;
	} else {
	    retypePasswordReq.css('visibility', 'hidden');
    }

	return retVal;
}


function validateMySettings() {
    var retVal = true;
    var isValid = $("#isValid");    
    
    var firstName = $("#firstName");
	var firstNameReq = $("#firstNameReq");

	var lastName = $("#lastName");
	var lastNameReq = $("#lastNameReq");
		
	if (firstName.attr('value') == '') {
	    firstNameReq.css('visibility', 'visible');
		retVal = false;
	}
	else {
	    firstNameReq.css('visibility', 'hidden');
	}

	if (lastName.attr('value') == '') {
	    lastNameReq.css('visibility', 'visible');
		retVal = false;		
	}
	else {
		lastNameReq.css('visibility', 'hidden');
	}

	isValid.attr('value', retVal);

	return retVal;
}


function validateAddNewProject() {
	var retVal = true;

	var title = $('#title');
	var looptijd = $('input[name=period]');
	var audience = $('input[name=audience]');
	var isValid = $('#isValid');
	var contact = $('textarea[name=contactPerson]');
	var program = $('select[name=program]');
	var status = $('select[name=status]');
	
	var description = $('#desc');
	var descriptionDecodedValue = HtmlDecode(description.val());
	var contactDecodedValue = HtmlDecode(contact.val());

	isValid.value = true;

	if (program.val() == '') {
	    retVal = false;
	    $('span[title=program]').css('visibility', 'visible');
	}
	else {
	    $('span[title=program]').css('visibility', 'hidden');
	}

	if (status.val() == '') {
	    retVal = false;
	    $('span[title=status]').css('visibility', 'visible');
	}
	else {
	    $('span[title=status]').css('visibility', 'hidden');
	}

	if (title.val() == '') {
	    title.attr('class', 'input-text error');
	    $('span[title=title]').css('visibility', 'visible');
		retVal = false;
	} else {
	    title.attr('class', 'input-text');
	    $('span[title=title]').css('visibility', 'hidden');
	}

	if (audience.val() == '') {
	    audience.attr('class', 'input-text error');
	    $('span[title=audience]').css('visibility', 'visible');
	    retVal = false;
	} else {
	    audience.attr('class', 'input-text');
	    $('span[title=audience]').css('visibility', 'hidden');
	}

	if (looptijd.val() == '') {
	    looptijd.attr('class', 'input-text error');
	    $('span[title=period]').css('visibility', 'visible');
	    retVal = false;
	} else {
	    looptijd.attr('class', 'input-text');
	    $('span[title=period]').css('visibility', 'hidden');
	}


	if (contact.val() == '' || contactDecodedValue == String.fromCharCode(0x00a0)) {
	    contact.attr('class', 'txt-small-error');
	    $('span[title=contact]').css('visibility', 'visible');
	    retVal = false;
	} else {
	    contact.attr('class', 'txt-small');
	    $('span[title=contact]').css('visibility', 'hidden');
	}

	if (description.val() == '' || descriptionDecodedValue == String.fromCharCode(0x00a0)) {
	    description.attr('class','errorTextarea');
	    $('span[title=description]').css('visibility', 'visible');
		retVal = false;
	} else {
	    description.attr('class','');
	    $('span[title=description]').css('visibility', 'hidden');
	}

	isValid.attr('value', retVal);
	
	return retVal;
}



function validateLoginFields() {
	var retVal = false;
	var email = $("input[id='loginEmail']");
	var password = $("input[id='loginPassword']");
	var isValid = objectById('isValid');

	var isEmailValid = validateLoginEmail(email.val());
	var isPassValid = validateLoginPassword(password.val());

	retVal = isValid.value = isEmailValid && isPassValid;

	if (!retVal) {
	    $('span.login-error').css('display', 'block');
	    $('#errorMessageBlock').css('display', 'none');
	}
	else {
	    $('span.login-error').css('display', 'none');
	}
	return retVal;
}

function validateLoginEmail(email) {
	var retVal = validateEMail(email);
	var errorField = objectById('loginEmailReqMessage');

	if (!retVal) {		
		errorField.style.visibility = "visible";
	} else {
	    errorField.style.visibility = "hidden";
    }
	
	return retVal;
}

function validateLoginPassword(password) {
	var retVal = false;
	var errorField = objectById('loginPasswordReqMessage');

	if (password == '') {
		errorField.style.visibility = "visible";
	} else {
		errorField.style.visibility = "hidden";
		retVal = true;
	}

	return retVal;
}


function validateContactFields() {
	var retVal = false;

	var salutationInputField1 = $('#aanhef1');
	var salutationInputField2 = $('#aanhef2');
	var name = $('#name');
	var emailInputField = $('#email');
	var phone = $('#phone');
	var questionInputField = $('#question');

	var isValid = $('#isValid');
	isValid.attr('value','false');

	var isNameValid = validateName(name);
	var isEMailValid = validateContactEMail(emailInputField);
	var isPhoneValid = validatePhoneNumber(phone);
	var isQuestionValid = validateQuestionInputField(questionInputField);
	
	if (isNameValid && isEMailValid && isPhoneValid && isQuestionValid && (salutationInputField1.attr('checked') || salutationInputField2.attr('checked'))) {
	    isValid.attr('value', 'true');
		retVal = true;
    }

	return retVal;
}


/* Validate phone number */
function validatePhoneNumber(phoneNumberInputField) {
    var retVal = false;
    var phoneNumberValue = phoneNumberInputField.attr('value');
    var errorField = $('#lblPhoneReqMessage');
    var re = new RegExp('(^\\+[0-9]{2}|^\\+[0-9]{2}\(0\)|^\(\\+[0-9]{2}\)\(0\)|^00[0-9]{2}|^0)([0-9]{9}$|[0-9\-\s]{10}$)');

    if (phoneNumberValue == '' || re.test(phoneNumberValue)) {
        retVal = true;
        phoneNumberInputField.attr('class','input-text');
        errorField.css('visibility', "hidden");
        
    } else {
        phoneNumberInputField.attr('class','input-text error');
        errorField.css('visibility' ,"visible");
    }

    return retVal;
}

function validateContactEMail(emailInputField) {
    var retVal = false;
    var emailValue = emailInputField.attr('value');
    var errorField = $('#lblEmailReqMessage');
    var re = new RegExp('^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.(([0-9]{1,3})|([a-zA-Z]{2,3})|(aero|coop|info|museum|name))$');

    if (re.test(emailValue)) {
        retVal = true;
        emailInputField.attr('class','input-text');
        errorField.css('visibility',"hidden");
    } else {
        emailInputField.attr('class','input-text error');
        errorField.css('visibility',"visible");
    }
    return retVal;
}


/* Validate name input field */
function validateName(name) {
	var retVal = true;
	var errorField = $('#lblNameReqMessage');
	if (name.attr('value') == '') {
		name.attr('class','input-text error');
		errorField.css('visibility',"visible");
		retVal = false;
	} else {
	errorField.css('visibility', "hidden");
		name.attr('class','input-text');
	}

	return retVal;
}

/* Validate question input field */
function validateQuestionInputField(questionInputField) {
	var retVal = true;
	var errorField = $('#lblQuestionReqMessage');
	var questionDecodedValue = HtmlDecode(questionInputField.attr('value'));

	if (questionInputField.attr('value') == '' || questionDecodedValue == String.fromCharCode(0x00a0)) {
		questionInputField.attr('class','errorTextarea');
		errorField.css('visibility',"visible");
		retVal = false;
	} else {
	    questionInputField.attr('class','input-text');
	    errorField.css('visibility', "hidden");
	}
	return retVal;
}


/* Validate e-mail address */
function validateEMail(email) {
    var retVal = false;
    var re = new RegExp('^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.(([0-9]{1,3})|([a-zA-Z]{2,3})|(aero|coop|info|museum|name))$');

    if (email.match(re)) {
		retVal = true;
	}

	return retVal;
}



// HtmlDecode http://lab.msdn.microsoft.com/annotations/htmldecode.js 
//   client side version of the useful Server.HtmlDecode method 
//   takes one string (encoded) and returns another (decoded) 
function HtmlDecode(s) {
	var out = "";
	if (s == null) return;

	var l = s.length;
	for (var i = 0; i < l; i++) {
		var ch = s.charAt(i);
		if (ch == '&') {
			var semicolonIndex = s.indexOf(';', i + 1);

			if (semicolonIndex > 0) {
				var entity = s.substring(i + 1, semicolonIndex);
				if (entity.length > 1 && entity.charAt(0) == '#') {
					if (entity.charAt(1) == 'x' || entity.charAt(1) == 'X')
						ch = String.fromCharCode(eval('0' + entity.substring(1)));
					else
						ch = String.fromCharCode(eval(entity.substring(1)));
				}
				else {
					switch (entity) {
						case 'quot': ch = String.fromCharCode(0x0022); break;
						case 'amp': ch = String.fromCharCode(0x0026); break;
						case 'lt': ch = String.fromCharCode(0x003c); break;
						case 'gt': ch = String.fromCharCode(0x003e); break;

						case 'nbsp': ch = String.fromCharCode(0x00a0); break;

						case 'iexcl': ch = String.fromCharCode(0x00a1); break;

						case 'cent': ch = String.fromCharCode(0x00a2); break;

						case 'pound': ch = String.fromCharCode(0x00a3); break;

						case 'curren': ch = String.fromCharCode(0x00a4); break;

						case 'yen': ch = String.fromCharCode(0x00a5); break;

						case 'brvbar': ch = String.fromCharCode(0x00a6); break;

						case 'sect': ch = String.fromCharCode(0x00a7); break;

						case 'uml': ch = String.fromCharCode(0x00a8); break;

						case 'copy': ch = String.fromCharCode(0x00a9); break;

						case 'ordf': ch = String.fromCharCode(0x00aa); break;

						case 'laquo': ch = String.fromCharCode(0x00ab); break;

						case 'not': ch = String.fromCharCode(0x00ac); break;

						case 'shy': ch = String.fromCharCode(0x00ad); break;

						case 'reg': ch = String.fromCharCode(0x00ae); break;

						case 'macr': ch = String.fromCharCode(0x00af); break;

						case 'deg': ch = String.fromCharCode(0x00b0); break;

						case 'plusmn': ch = String.fromCharCode(0x00b1); break;

						case 'sup2': ch = String.fromCharCode(0x00b2); break;

						case 'sup3': ch = String.fromCharCode(0x00b3); break;

						case 'acute': ch = String.fromCharCode(0x00b4); break;

						case 'micro': ch = String.fromCharCode(0x00b5); break;

						case 'para': ch = String.fromCharCode(0x00b6); break;

						case 'middot': ch = String.fromCharCode(0x00b7); break;

						case 'cedil': ch = String.fromCharCode(0x00b8); break;

						case 'sup1': ch = String.fromCharCode(0x00b9); break;

						case 'ordm': ch = String.fromCharCode(0x00ba); break;

						case 'raquo': ch = String.fromCharCode(0x00bb); break;

						case 'frac14': ch = String.fromCharCode(0x00bc); break;

						case 'frac12': ch = String.fromCharCode(0x00bd); break;

						case 'frac34': ch = String.fromCharCode(0x00be); break;

						case 'iquest': ch = String.fromCharCode(0x00bf); break;

						case 'Agrave': ch = String.fromCharCode(0x00c0); break;

						case 'Aacute': ch = String.fromCharCode(0x00c1); break;

						case 'Acirc': ch = String.fromCharCode(0x00c2); break;

						case 'Atilde': ch = String.fromCharCode(0x00c3); break;

						case 'Auml': ch = String.fromCharCode(0x00c4); break;

						case 'Aring': ch = String.fromCharCode(0x00c5); break;

						case 'AElig': ch = String.fromCharCode(0x00c6); break;

						case 'Ccedil': ch = String.fromCharCode(0x00c7); break;

						case 'Egrave': ch = String.fromCharCode(0x00c8); break;

						case 'Eacute': ch = String.fromCharCode(0x00c9); break;

						case 'Ecirc': ch = String.fromCharCode(0x00ca); break;

						case 'Euml': ch = String.fromCharCode(0x00cb); break;

						case 'Igrave': ch = String.fromCharCode(0x00cc); break;

						case 'Iacute': ch = String.fromCharCode(0x00cd); break;

						case 'Icirc': ch = String.fromCharCode(0x00ce); break;

						case 'Iuml': ch = String.fromCharCode(0x00cf); break;

						case 'ETH': ch = String.fromCharCode(0x00d0); break;

						case 'Ntilde': ch = String.fromCharCode(0x00d1); break;

						case 'Ograve': ch = String.fromCharCode(0x00d2); break;

						case 'Oacute': ch = String.fromCharCode(0x00d3); break;

						case 'Ocirc': ch = String.fromCharCode(0x00d4); break;

						case 'Otilde': ch = String.fromCharCode(0x00d5); break;

						case 'Ouml': ch = String.fromCharCode(0x00d6); break;

						case 'times': ch = String.fromCharCode(0x00d7); break;

						case 'Oslash': ch = String.fromCharCode(0x00d8); break;

						case 'Ugrave': ch = String.fromCharCode(0x00d9); break;

						case 'Uacute': ch = String.fromCharCode(0x00da); break;

						case 'Ucirc': ch = String.fromCharCode(0x00db); break;

						case 'Uuml': ch = String.fromCharCode(0x00dc); break;

						case 'Yacute': ch = String.fromCharCode(0x00dd); break;

						case 'THORN': ch = String.fromCharCode(0x00de); break;

						case 'szlig': ch = String.fromCharCode(0x00df); break;

						case 'agrave': ch = String.fromCharCode(0x00e0); break;

						case 'aacute': ch = String.fromCharCode(0x00e1); break;

						case 'acirc': ch = String.fromCharCode(0x00e2); break;

						case 'atilde': ch = String.fromCharCode(0x00e3); break;

						case 'auml': ch = String.fromCharCode(0x00e4); break;

						case 'aring': ch = String.fromCharCode(0x00e5); break;

						case 'aelig': ch = String.fromCharCode(0x00e6); break;

						case 'ccedil': ch = String.fromCharCode(0x00e7); break;

						case 'egrave': ch = String.fromCharCode(0x00e8); break;

						case 'eacute': ch = String.fromCharCode(0x00e9); break;

						case 'ecirc': ch = String.fromCharCode(0x00ea); break;

						case 'euml': ch = String.fromCharCode(0x00eb); break;

						case 'igrave': ch = String.fromCharCode(0x00ec); break;

						case 'iacute': ch = String.fromCharCode(0x00ed); break;

						case 'icirc': ch = String.fromCharCode(0x00ee); break;

						case 'iuml': ch = String.fromCharCode(0x00ef); break;

						case 'eth': ch = String.fromCharCode(0x00f0); break;

						case 'ntilde': ch = String.fromCharCode(0x00f1); break;

						case 'ograve': ch = String.fromCharCode(0x00f2); break;

						case 'oacute': ch = String.fromCharCode(0x00f3); break;

						case 'ocirc': ch = String.fromCharCode(0x00f4); break;

						case 'otilde': ch = String.fromCharCode(0x00f5); break;

						case 'ouml': ch = String.fromCharCode(0x00f6); break;

						case 'divide': ch = String.fromCharCode(0x00f7); break;

						case 'oslash': ch = String.fromCharCode(0x00f8); break;

						case 'ugrave': ch = String.fromCharCode(0x00f9); break;

						case 'uacute': ch = String.fromCharCode(0x00fa); break;

						case 'ucirc': ch = String.fromCharCode(0x00fb); break;

						case 'uuml': ch = String.fromCharCode(0x00fc); break;

						case 'yacute': ch = String.fromCharCode(0x00fd); break;

						case 'thorn': ch = String.fromCharCode(0x00fe); break;

						case 'yuml': ch = String.fromCharCode(0x00ff); break;

						case 'OElig': ch = String.fromCharCode(0x0152); break;

						case 'oelig': ch = String.fromCharCode(0x0153); break;

						case 'Scaron': ch = String.fromCharCode(0x0160); break;

						case 'scaron': ch = String.fromCharCode(0x0161); break;

						case 'Yuml': ch = String.fromCharCode(0x0178); break;

						case 'fnof': ch = String.fromCharCode(0x0192); break;

						case 'circ': ch = String.fromCharCode(0x02c6); break;

						case 'tilde': ch = String.fromCharCode(0x02dc); break;

						case 'Alpha': ch = String.fromCharCode(0x0391); break;

						case 'Beta': ch = String.fromCharCode(0x0392); break;

						case 'Gamma': ch = String.fromCharCode(0x0393); break;

						case 'Delta': ch = String.fromCharCode(0x0394); break;

						case 'Epsilon': ch = String.fromCharCode(0x0395); break;

						case 'Zeta': ch = String.fromCharCode(0x0396); break;

						case 'Eta': ch = String.fromCharCode(0x0397); break;

						case 'Theta': ch = String.fromCharCode(0x0398); break;

						case 'Iota': ch = String.fromCharCode(0x0399); break;

						case 'Kappa': ch = String.fromCharCode(0x039a); break;

						case 'Lambda': ch = String.fromCharCode(0x039b); break;

						case 'Mu': ch = String.fromCharCode(0x039c); break;

						case 'Nu': ch = String.fromCharCode(0x039d); break;

						case 'Xi': ch = String.fromCharCode(0x039e); break;

						case 'Omicron': ch = String.fromCharCode(0x039f); break;

						case 'Pi': ch = String.fromCharCode(0x03a0); break;

						case ' Rho ': ch = String.fromCharCode(0x03a1); break;

						case 'Sigma': ch = String.fromCharCode(0x03a3); break;

						case 'Tau': ch = String.fromCharCode(0x03a4); break;

						case 'Upsilon': ch = String.fromCharCode(0x03a5); break;

						case 'Phi': ch = String.fromCharCode(0x03a6); break;

						case 'Chi': ch = String.fromCharCode(0x03a7); break;

						case 'Psi': ch = String.fromCharCode(0x03a8); break;

						case 'Omega': ch = String.fromCharCode(0x03a9); break;

						case 'alpha': ch = String.fromCharCode(0x03b1); break;

						case 'beta': ch = String.fromCharCode(0x03b2); break;

						case 'gamma': ch = String.fromCharCode(0x03b3); break;

						case 'delta': ch = String.fromCharCode(0x03b4); break;

						case 'epsilon': ch = String.fromCharCode(0x03b5); break;

						case 'zeta': ch = String.fromCharCode(0x03b6); break;

						case 'eta': ch = String.fromCharCode(0x03b7); break;

						case 'theta': ch = String.fromCharCode(0x03b8); break;

						case 'iota': ch = String.fromCharCode(0x03b9); break;

						case 'kappa': ch = String.fromCharCode(0x03ba); break;

						case 'lambda': ch = String.fromCharCode(0x03bb); break;

						case 'mu': ch = String.fromCharCode(0x03bc); break;

						case 'nu': ch = String.fromCharCode(0x03bd); break;

						case 'xi': ch = String.fromCharCode(0x03be); break;

						case 'omicron': ch = String.fromCharCode(0x03bf); break;

						case 'pi': ch = String.fromCharCode(0x03c0); break;

						case 'rho': ch = String.fromCharCode(0x03c1); break;

						case 'sigmaf': ch = String.fromCharCode(0x03c2); break;

						case 'sigma': ch = String.fromCharCode(0x03c3); break;

						case 'tau': ch = String.fromCharCode(0x03c4); break;

						case 'upsilon': ch = String.fromCharCode(0x03c5); break;

						case 'phi': ch = String.fromCharCode(0x03c6); break;

						case 'chi': ch = String.fromCharCode(0x03c7); break;

						case 'psi': ch = String.fromCharCode(0x03c8); break;

						case 'omega': ch = String.fromCharCode(0x03c9); break;

						case 'thetasym': ch = String.fromCharCode(0x03d1); break;

						case 'upsih': ch = String.fromCharCode(0x03d2); break;

						case 'piv': ch = String.fromCharCode(0x03d6); break;

						case 'ensp': ch = String.fromCharCode(0x2002); break;

						case 'emsp': ch = String.fromCharCode(0x2003); break;

						case 'thinsp': ch = String.fromCharCode(0x2009); break;

						case 'zwnj': ch = String.fromCharCode(0x200c); break;

						case 'zwj': ch = String.fromCharCode(0x200d); break;

						case 'lrm': ch = String.fromCharCode(0x200e); break;

						case 'rlm': ch = String.fromCharCode(0x200f); break;

						case 'ndash': ch = String.fromCharCode(0x2013); break;

						case 'mdash': ch = String.fromCharCode(0x2014); break;

						case 'lsquo': ch = String.fromCharCode(0x2018); break;

						case 'rsquo': ch = String.fromCharCode(0x2019); break;

						case 'sbquo': ch = String.fromCharCode(0x201a); break;

						case 'ldquo': ch = String.fromCharCode(0x201c); break;

						case 'rdquo': ch = String.fromCharCode(0x201d); break;

						case 'bdquo': ch = String.fromCharCode(0x201e); break;

						case 'dagger': ch = String.fromCharCode(0x2020); break;

						case 'Dagger': ch = String.fromCharCode(0x2021); break;

						case 'bull': ch = String.fromCharCode(0x2022); break;

						case 'hellip': ch = String.fromCharCode(0x2026); break;

						case 'permil': ch = String.fromCharCode(0x2030); break;

						case 'prime': ch = String.fromCharCode(0x2032); break;

						case 'Prime': ch = String.fromCharCode(0x2033); break;

						case 'lsaquo': ch = String.fromCharCode(0x2039); break;

						case 'rsaquo': ch = String.fromCharCode(0x203a); break;

						case 'oline': ch = String.fromCharCode(0x203e); break;

						case 'frasl': ch = String.fromCharCode(0x2044); break;

						case 'euro': ch = String.fromCharCode(0x20ac); break;

						case 'image': ch = String.fromCharCode(0x2111); break;

						case 'weierp': ch = String.fromCharCode(0x2118); break;

						case 'real': ch = String.fromCharCode(0x211c); break;

						case 'trade': ch = String.fromCharCode(0x2122); break;

						case 'alefsym': ch = String.fromCharCode(0x2135); break;

						case 'larr': ch = String.fromCharCode(0x2190); break;

						case 'uarr': ch = String.fromCharCode(0x2191); break;

						case 'rarr': ch = String.fromCharCode(0x2192); break;

						case 'darr': ch = String.fromCharCode(0x2193); break;

						case 'harr': ch = String.fromCharCode(0x2194); break;

						case 'crarr': ch = String.fromCharCode(0x21b5); break;

						case 'lArr': ch = String.fromCharCode(0x21d0); break;

						case 'uArr': ch = String.fromCharCode(0x21d1); break;

						case 'rArr': ch = String.fromCharCode(0x21d2); break;

						case 'dArr': ch = String.fromCharCode(0x21d3); break;

						case 'hArr': ch = String.fromCharCode(0x21d4); break;

						case 'forall': ch = String.fromCharCode(0x2200); break;

						case 'part': ch = String.fromCharCode(0x2202); break;

						case 'exist': ch = String.fromCharCode(0x2203); break;

						case 'empty': ch = String.fromCharCode(0x2205); break;

						case 'nabla': ch = String.fromCharCode(0x2207); break;

						case 'isin': ch = String.fromCharCode(0x2208); break;

						case 'notin': ch = String.fromCharCode(0x2209); break;

						case 'ni': ch = String.fromCharCode(0x220b); break;

						case 'prod': ch = String.fromCharCode(0x220f); break;

						case 'sum': ch = String.fromCharCode(0x2211); break;

						case 'minus': ch = String.fromCharCode(0x2212); break;

						case 'lowast': ch = String.fromCharCode(0x2217); break;

						case 'radic': ch = String.fromCharCode(0x221a); break;

						case 'prop': ch = String.fromCharCode(0x221d); break;

						case 'infin': ch = String.fromCharCode(0x221e); break;

						case 'ang': ch = String.fromCharCode(0x2220); break;

						case 'and': ch = String.fromCharCode(0x2227); break;

						case 'or': ch = String.fromCharCode(0x2228); break;

						case 'cap': ch = String.fromCharCode(0x2229); break;

						case 'cup': ch = String.fromCharCode(0x222a); break;

						case 'int': ch = String.fromCharCode(0x222b); break;

						case 'there4': ch = String.fromCharCode(0x2234); break;

						case 'sim': ch = String.fromCharCode(0x223c); break;

						case 'cong': ch = String.fromCharCode(0x2245); break;

						case 'asymp': ch = String.fromCharCode(0x2248); break;

						case 'ne': ch = String.fromCharCode(0x2260); break;

						case 'equiv': ch = String.fromCharCode(0x2261); break;

						case 'le': ch = String.fromCharCode(0x2264); break;

						case 'ge': ch = String.fromCharCode(0x2265); break;

						case 'sub': ch = String.fromCharCode(0x2282); break;

						case 'sup': ch = String.fromCharCode(0x2283); break;

						case 'nsub': ch = String.fromCharCode(0x2284); break;

						case 'sube': ch = String.fromCharCode(0x2286); break;

						case 'supe': ch = String.fromCharCode(0x2287); break;

						case 'oplus': ch = String.fromCharCode(0x2295); break;

						case 'otimes': ch = String.fromCharCode(0x2297); break;

						case 'perp': ch = String.fromCharCode(0x22a5); break;

						case 'sdot': ch = String.fromCharCode(0x22c5); break;

						case 'lceil': ch = String.fromCharCode(0x2308); break;

						case 'rceil': ch = String.fromCharCode(0x2309); break;

						case 'lfloor': ch = String.fromCharCode(0x230a); break;

						case 'rfloor': ch = String.fromCharCode(0x230b); break;

						case 'lang': ch = String.fromCharCode(0x2329); break;

						case 'rang': ch = String.fromCharCode(0x232a); break;

						case 'loz': ch = String.fromCharCode(0x25ca); break;

						case 'spades': ch = String.fromCharCode(0x2660); break;

						case 'clubs': ch = String.fromCharCode(0x2663); break;

						case 'hearts': ch = String.fromCharCode(0x2665); break;

						case 'diams': ch = String.fromCharCode(0x2666); break;

						default: ch = ''; break;

					}

				}

				i = semicolonIndex;
			}
		}
		out += ch;
	}
	return out;
} 