
//-- -------------------------------------------
//-- GENERIC ACCESSIBLE POPUP SCRIPT
//-- -------------------------------------------
var _POPUP_FEATURES = 'width=790,height=525,scrollbars=no';

function raw_popup(url, target, features) {
    if (isUndefined(features)) features = _POPUP_FEATURES;
    if (isUndefined(target)) target   = '_blank';
    var theWindow = window.open(url, target, features);
    theWindow.focus();
    return theWindow;
}

function link_popup(src, features) {
    return raw_popup(src.getAttribute('href'), src.getAttribute('target') || '_blank', features);
}


function isUndefined(v) {
    var undef;
    return v===undef;
}



//-- -------------------------------------------
//-- FUNCTION TO PRINT PAGE
//-- -------------------------------------------
function printpage() {
	if (window.print) { window.print(); }
	else {
		alert ("To print this page please select the 'Print' option from your browser's 'File' menu.")
	}
}





//-- -------------------------------------------
//-- NEWSLETTER SUBSCRIPTION FORM VALIDATION
//-- -------------------------------------------
function validateSubscribeForm() {

	var lineBreaker = "\n";
	var no_error = true
	var error_counter = 1
	var error_msg = "There seems to be a problem with the form." + lineBreaker + "Could you go back and check that you've entered:" + lineBreaker + lineBreaker;

	if(document.frmSubscribe.txtName.value == "") {
		error_msg = error_msg + error_counter + ". Your name"  + lineBreaker;
		error_counter = error_counter + 1
		no_error = false;
	}

	if(document.frmSubscribe.txtAddress.value == "") {
		error_msg = error_msg + error_counter + ". Your address"  + lineBreaker;
		error_counter = error_counter + 1
		no_error = false;
	}

	if(document.frmSubscribe.txtEmail.value == "") {
		error_msg = error_msg + error_counter + ". Your email address"  + lineBreaker;
		error_counter = error_counter + 1
		no_error = false;
	}

	if(document.frmSubscribe.txtEmail.value != "") {
		var validEmail = validateEmail(document.frmSubscribe.txtEmail.value)
		if(validEmail == false) {
			error_msg = error_msg + error_counter + ". A valid email address"  + lineBreaker;
			error_counter = error_counter + 1
			no_error = false;
		}
	}

	error_msg = error_msg + lineBreaker + "Thank you"


	if (no_error == true) {
		return true;
	}
	else {
		alert(error_msg);
		return false;
	}
}


//-- -------------------------------------------
//-- GET INVOLVED FORM VALIDATION
//-- -------------------------------------------
function validateGetInvolvedForm() {

	var lineBreaker = "\n";
	var no_error = true
	var error_counter = 1
	var error_msg = "There seems to be a problem with the form." + lineBreaker + "Could you go back and check that you've entered:" + lineBreaker + lineBreaker;

	if(document.frmGetInvolved.txtName.value == "") {
		error_msg = error_msg + error_counter + ". Your name"  + lineBreaker;
		error_counter = error_counter + 1
		no_error = false;
	}

	if(document.frmGetInvolved.txtEmail.value == "") {
		error_msg = error_msg + error_counter + ". Your email address"  + lineBreaker;
		error_counter = error_counter + 1
		no_error = false;
	}

	if(document.frmGetInvolved.txtEmail.value != "") {
		var validEmail = validateEmail(document.frmGetInvolved.txtEmail.value)
		if(validEmail == false) {
			error_msg = error_msg + error_counter + ". A valid email address"  + lineBreaker;
			error_counter = error_counter + 1
			no_error = false;
		}
	}

	if(document.frmGetInvolved.txtDetails.value == "") {
		error_msg = error_msg + error_counter + ". Details about how you would like to get involved"  + lineBreaker;
		error_counter = error_counter + 1
		no_error = false;
	}

	error_msg = error_msg + lineBreaker + "Thank you"


	if (no_error == true) {
		return true;
	}
	else {
		alert(error_msg);
		return false;
	}
}




function validateBuyGiftForm() {
	var lineBreaker = "\n";
	var no_error = true
	var error_counter = 1
	var error_msg = "There seems to be a problem with the form." + lineBreaker + "Could you go back and check that you've entered:" + lineBreaker + lineBreaker;

	if(document.frmBuyGift.txtYourName.value == "") {
		error_msg = error_msg + error_counter + ". Your name"  + lineBreaker;
		error_counter = error_counter + 1
		no_error = false;
	}

	if(document.frmBuyGift.txtYourEmail.value == "") {
		error_msg = error_msg + error_counter + ". Your email address"  + lineBreaker;
		error_counter = error_counter + 1
		no_error = false;
	}

	if(document.frmBuyGift.txtYourEmail.value != "") {
		var validEmail = validateEmail(document.frmBuyGift.txtYourEmail.value)
		if(validEmail == false) {
			error_msg = error_msg + error_counter + ". A valid email address"  + lineBreaker;
			error_counter = error_counter + 1
			no_error = false;
		}
	}

	if(document.frmBuyGift.txtFriendsName.value == "") {
		error_msg = error_msg + error_counter + ". Your friend's name"  + lineBreaker;
		error_counter = error_counter + 1
		no_error = false;
	}

	if(document.frmBuyGift.txtFriendsAddress.value == "") {
		error_msg = error_msg + error_counter + ". Your friend's address"  + lineBreaker;
		error_counter = error_counter + 1
		no_error = false;
	}

	if(document.frmBuyGift.txtPersonalMessage.value == "") {
		error_msg = error_msg + error_counter + ". Your personal message"  + lineBreaker;
		error_counter = error_counter + 1
		no_error = false;
	}

	error_msg = error_msg + lineBreaker + "Thank you"


	if (no_error == true) {
		return true;
	}
	else {
		alert(error_msg);
		return false;
	}
}



//-- -------------------------------------------
//-- GENERIC EMAIL ADDRESS VALIDATION FUNCTION
//-- -------------------------------------------
function validateEmail(addr) {
	var invalidChars = '\/\'\\ ";:?!()[]\{\}^|';
	for (i=0; i<invalidChars.length; i++) {
		if (addr.indexOf(invalidChars.charAt(i),0) > -1) {
			return false;
		}
	}

	for (i=0; i<addr.length; i++) {
		if (addr.charCodeAt(i)>127) {
		return false;
		}
	}

	var atPos = addr.indexOf('@',0);
	if (atPos == -1) {
		return false;
	}

	if (atPos == 0) {
		return false;
	}

	if (addr.indexOf('@', atPos + 1) > - 1) {
		return false;
	}

	if (addr.indexOf('.', atPos) == -1) {
		return false;
	}

	if (addr.indexOf('@.',0) != -1) {
		return false;
	}

	if (addr.indexOf('.@',0) != -1){
		return false;
	}

	if (addr.indexOf('..',0) != -1) {
		return false;
	}

	var suffix = addr.substring(addr.lastIndexOf('.')+1);
	if (suffix.length != 2 && suffix != 'com' && suffix != 'net' && suffix != 'org' && suffix != 'edu' && suffix != 'int' && suffix != 'mil' && suffix != 'gov' & suffix != 'arpa' && suffix != 'biz' && suffix != 'aero' && suffix != 'name' && suffix != 'coop' && suffix != 'info' && suffix != 'pro' && suffix != 'museum') {
		return false;
	}
	return true;
}