<!--
emailReg=/^[\w|_|-|.]+@[\w|_|-]+.[\w|-|_|.]+$/i;

function validateEmail() {
    JSemail=document.getElementById('Email').value;
    if (JSemail.search(emailReg)==-1) {
	alert('Please enter a valid email address.');
	return false;
    } else if (document.getElementById('Category').value == "") {
	alert('Please select a feedback "Subject" from the pull-down list.');
	return false;
    } else if (document.getElementById('Report').value == "") {
	alert('Please enter details of your feedback in the "Comments" text area.');
	return false;
    } else {
	return true;
    }
}

function enlarge(e, file, mX, mY) {
    window.open(file,'screen','titlebar=0,scrollbars=0,resizeable=0,menubar=0,Width=600,height=450,top=' + mY + ',left=' + mX + ",dependent=1");
    //return true;
}

function SSenlarge(e, file, mX, mY) {
    window.open(file,'screen','titlebar=0,scrollbars=0,resizeable=0,menubar=0,Width=' + mX + ',height=' + mY +  ",dependent=1");
    //return true;
}

function MM_preloadImages() { //v3.0
    var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
				  var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
				      if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.0
    var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
	d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
    if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
    for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
    if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function MM_swapImgRestore() { //v3.0
    var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_swapImage() { //v3.0
    var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
	if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

// copyright 1999-2001 Idocs, Inc. http://www.idocs.com/tags/
// Distribute this script freely, but keep this 
// notice with the code.
var submitRolls = new Object();

function submitroll(src, oversrc, name, validate)
{
    this.src=src;
    this.oversrc=oversrc;
    this.name=name;
    this.alt="Submit Query";
    this.validate = validate;
    this.write=submitroll_write;
    if (name == 'feedback_button')
	document.forms[1].action = 'enterFeedback.jsp';
}

function submitroll_write()
{
    var thisform = 'document.forms[' + (document.forms.length - 1) + ']';
    submitRolls[this.name] = new Object();
    submitRolls[this.name].over = new Image();
    submitRolls[this.name].over.src = this.oversrc;
    submitRolls[this.name].out = new Image();
    submitRolls[this.name].out.src = this.src;

    document.write('<A onMouseOver="if (document.images)document.images[\'' + this.name + "'].src=submitRolls['" + this.name + '\'].over.src"' + ' onMouseOut="if (document.images)document.images[\'' + this.name + "'].src=submitRolls['" + this.name + '\'].out.src"' + ' HREF="javascript:');

    if (this.sendfield) {
	if (! this.sendvalue)
	    this.sendvalue = 1;
	document.write(thisform, ".elements['", this.sendfield, "'].value='", this.sendvalue, "';");
    }
    if (this.validate) {
	//document.write('if (validateEmail()){' + thisform + '.submit();void(0);}"');
	document.write(thisform + '.submit();void(0);"');
    } else
	document.write(thisform + '.submit();void(0);"');
    if (this.msg)document.write(' onClick="return confirm(\'' , this.msg, '\')"');
    document.write('>');

    document.write('<IMG SRC="' + this.src + '" ALT="' + this.alt + '" BORDER=0 NAME="' + this.name + '"');
    if (this.height)document.write(' HEIGHT=' + this.height);
    if (this.width)document.write(' WIDTH='  + this.width);
    if (this.otheratts)document.write(' ' + this.otheratts);
    document.write('></A>');
    if (this.sendfield)
    {
	document.write('<INPUT TYPE=HIDDEN NAME="' + this.sendfield + '">');
	document.forms[document.forms.length - 1].elements[this.sendfield].value='';
    }
}

// pull-down menu elements

function makeVisible(element) {
    document.getElementById(element).style.visibility = "visible";
    document.getElementById(element).style.display = "inline";
}

function makeHidden(element) {
    document.getElementById(element).style.visibility = "hidden";
    document.getElementById(element).style.display = "none";
}

function rollOver (id, image) {
    document.getElementById(id).src = image;
}

function confirmScript (script) {
    var name = confirm(script);
    if (name==true) {
	window.location="http://www.aquaminds.com/" + script;
    }
}

function setRetail () {
    if (document.licenserForm.type.value == "RETAIL") {
	document.licenserForm.emailAddr.value = 'retail';
	document.licenserForm.emailAddr2.value = 'retail';
	document.licenserForm.fixedName.checked = false;
	document.licenserForm.comments.value = 'retail license';
    }
}

function searchManual() {
    var search = new String(document.searchForm.search.value);
    if (search==null || search.length < 3) {
	alert("Please enter a valid search term");
    } else {
	parent.links.location="/manual/search.jsp?search="+search;
    }
}


function validateNoteSharePurchase() {
    var form = document.forms["purchaseForm"];
    var filter = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
    var firstName= form.ntFirstName.value;
    var lastName = form.ntLastName.value;
    var nondigit = /\D/
	var error = '';
    var emailString1 = new String(form.ntEmail.value).toLowerCase();
    var emailString2 = new String(form.ntEmail2.value).toLowerCase();
    if (firstName == null || firstName.length == 0)
	error += 'Licensee First Name field was left blank\n';
    if (lastName == null || lastName.length == 0)
	error += 'Licensee Last Name field was left blank\n';
    if (emailString1 == null || emailString1.length == 0)
	error += 'LicenseeEmail field was left blank\n';
    if (emailString2 == null || emailString2.length == 0)
	error += 'LicenseeConfirmation Email field was left blank\n';
    if (emailString1 != emailString2)
	error += 'Licensee Email fields do not match\n';	
    else if (! filter.test(emailString1))
	error += 'Email address is not properly formed or contains illegal characters\n';

    // validate purchaser information
    /*
      for (var count=0; count < form.cardType.length; count++) {
      if (form.cardType[count].checked) {
      form.cardType.value = form.cardType[count].value;
      break;
      }
      }*/
    if (form.cardType.value == null || form.cardType.value.length == 0)
	error += 'Credit Card Type was not selected\n';		
    if (form.cardNumber.value == null || form.cardNumber.value.length == 0)
	error += 'Credit Card Number field was left blank\n';
    if (form.expDate.value == null || form.expDate.value.length == 0)
	error += 'Credit Card Expiration Date field was left blank\n';
    else if (nondigit.test(form.expDate.value) ||  form.expDate.value > 1299)
	error += 'Invalid Credit Card Expiration Date\n';
    if (form.firstName.value == null || form.ccvCode.value.length == 0)
	error += 'Payment Information CCV Code field was left blank\n'; 
    if (form.firstName.value == null || form.firstName.value.length == 0)
	error += 'Payment Information First Name field was left blank\n';
    if (form.lastName.value == null || form.lastName.value.length == 0)
	error += 'Payment Information Last Name field was left blank\n';
    if (form.address1.value == null || form.address1.value.length == 0)
	error += 'Payment Information Address field was left blank\n';
    if (form.city.value == null || form.city.value.length == 0)
	error += 'Payment Information City field was left blank\n';		
    if (form.state.value == null || form.state.value.length == 0)
	error += 'Payment Information State field was left blank\n';
    if (form.zip.value == null || form.zip.value.length == 0)
	error += 'Payment Information Zip/Postal Code field was left blank\n';
    if (form.phoneNumber.value == null || form.phoneNumber.value.length == 0)
	error += 'Payment Information Phone Number field was left blank\n';			
    if (form.emailAddr.value == null || form.emailAddr.value.length == 0)
	error += 'Payment Information Email  field was left blank\n';
    if (form.emailAddr2.value == null || form.emailAddr2.value.length == 0)
	error += 'Payment Information Confirmation Email field was left blank\n';						
    if (form.emailAddr.value != form.emailAddr2.value)
	error += 'Payment Information Email fields do not match\n';	
    else if (! filter.test(form.emailAddr.value))
	error += 'Payment Information Email address is not properly formed or contains illegal characters\n';
    if (error.length > 0) {
	alert('Your submission contained the following errors:\n' + error + 'Please make corrections and re-submit the form');
    } else 
	document.forms["purchaseForm"].submit();
}

function validateApplePurchase() {
    var form = document.forms["purchaseForm"];
    var error = '';
    var nondigit = /\D/
	if (form.firstName.value == null || form.firstName.value.length == 0)
	    error += 'Licensee First Name field was left blank\n';
    if (form.lastName.value == null || form.lastName.value.length == 0)
	error += 'Licensee Last Name field was left blank\n';
    if (form.cardType.value == null || form.cardType.value.length == 0)
	error += 'Credit Card Type was not selected\n';		
    if (form.cardNumber.value == null || form.cardNumber.value.length == 0)
	error += 'Credit Card Number field was left blank\n';
    if (form.expDate.value == null || form.expDate.value.length == 0)
	error += 'Credit Card Expiration Date field was left blank\n';
    else if (nondigit.test(form.expDate.value) ||  form.expDate.value > 1299)
	error += 'Invalid Credit Card Expiration Date\n';
    if (form.firstName.value == null || form.ccvCode.value.length == 0)
	error += 'Payment Information CCV Code field was left blank\n'; 
    if (form.firstName.value == null || form.firstName.value.length == 0)
	error += 'Payment Information First Name field was left blank\n';
    if (form.lastName.value == null || form.lastName.value.length == 0)
	error += 'Payment Information Last Name field was left blank\n';
    if (form.address1.value == null || form.address1.value.length == 0)
	error += 'Payment Information Address field was left blank\n';
    if (form.city.value == null || form.city.value.length == 0)
	error += 'Payment Information City field was left blank\n';		
    if (form.state.value == null || form.state.value.length == 0)
	error += 'Payment Information State field was left blank\n';
    if (form.zip.value == null || form.zip.value.length == 0)
	error += 'Payment Information Zip/Postal Code field was left blank\n';
    if (form.phoneNumber.value == null || form.phoneNumber.value.length == 0)
	error += 'Payment Information Phone Number field was left blank\n';	       
    if (error.length > 0) {
	alert('Your submission contained the following errors:\n' + error + 'Please make corrections and re-submit the form');
    } else 
	document.forms["purchaseForm"].submit();
}

function googleSearch() {
    
}

function doMovie(theaterId, theaterSrc, width, height) {
    var theater = document.getElementById(theaterId);
    theater.style.visibility="visible";
    //theater.innerHTML='<EMBED SRC="' + theaterSrc + '" TYPE="image/x-quicktime" HEIGHT=' + height + ' WIDTH=' + width + ' AUTOSTART="true" bgcolor="ffffff">';
    theater.innerHTML='<EMBED SRC="' + theaterSrc + '" HEIGHT=' + height + ' WIDTH=' + width + ' AUTOSTART="true" bgcolor="ffffff">';
}

function validateBetaSignUp() {
    var errorText = '';
    var nondigit = /\D/;
    var filter = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
    var form = document.getElementById('betaSignUp');
    if (form.fName.value == null || form.fName.value.length == 0)
	errorText += '* First name field was left blank\n';
    if (form.lName.value == null || form.lName.value.length == 0)
	errorText += '* Last name field was left blank\n';
    if (form.email.value == null || form.email.value.length == 0)
	errorText += '* Email address field was left blank\n';
    if (! filter.test(form.email.value))
	errorText += '* Email address is not properly formed or contains illegal characters\n';
    if (form.email.value != form.email2.value)
	errorText += '* Email fields do not match\n';
    //errorText += validateBetaRadio(form.currentUser, "Current NoteTaker/NoteShare user");
    //errorText += validateBetaRadio(form.macWindowsUser, "Mac and Windows user");
    //errorText += validateBetaRadio(form.windowsUser, "Windows-only user");
    // check for windows user field input
    // if (betaRadioValue(form.windowsUser) == 'yes') {
    errorText += validateBetaRadio(form.operatingSystem, "Operating System");
    //errorText += validateBetaRadio(form.windowsMachine, "Windows Machine");
    //}
    //errorText += validateBetaRadio(form.linuxUser, "Linux user");
    //   errorText += validateBetaRadio(form.smartphoneUser, "Smartphone user");
    //if (betaRadioValue(form.smartphoneUser) == 'yes') {
    errorText += validateBetaRadio(form.phoneOS, "Smartphone Operating System");
    //}
    errorText += validateBetaRadio(form.userType, "Type of User");
    errorText += validateBetaRadio(form.useType, "Type of Use");
    errorText += validateBetaRadio(form.language, "Language");
    errorText += validateBetaRadio(form.browser, "Browser");
    //errorText += validateBetaRadio(form.accessibility, "Accessibility");

    if (errorText.length > 0) {
	alert('Your submission contained the following errors:\n' + errorText + 'Please make corrections and re-submit the form');
	return false;
    }  else
	return true;
}

function validateBetaRadio(b, m) {
    var myOption = -1;
    for (i=b.length-1; i > -1; i--) {
	if (b[i].checked) {
	    myOption = i;
	    i = -1;
	}
    }
    if (myOption == -1)
	return '* The ' + m + ' field was left blank\n';
    else 
	return '';
}

function betaRadioValue(b) {
    var myOption = -1;
    var bValue;
    for (i=b.length-1; i > -1; i--) {
	if (b[i].checked) {
	    bValue = b[i].value;
	    myOption = i;
	    i = -1;
	}
    }
    return bValue;
}

function expressPasswordLookup() {
    var error = "";
    var filter = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
    var email = document.getElementById("email").value;
    if (email == null || email.length ==0)
	error += "The email field was left blank.  Please enter your email address and re-submit.";
    else if (! filter.test(email))
	error += 'The email address was not properly formed or contains illegal characters\n';
    if (error.length > 0)
	alert(error);
    else {
	var theForm = document.getElementById("expressLoginForm");
	var formAction = document.getElementById("formAction");
	formAction.value = "password";
	theForm.submit();
    }
}

function amAdministrationSearch() {
    var theForm = document.getElementById("expressAccountForm");
    var formAction = document.getElementById("formAction");
    formAction.value = "adminSearch";
    theForm.submit();
}

function expressLoginCheck() {
    var error = "";
    var theForm = document.getElementById("expressLoginForm");
    var filter = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
    var email = document.getElementById("email").value;
    var password = document.getElementById("password").value;
    if (email == null || email.length ==0)
	error += "The email field was left blank.  Please enter your email address and re-submit.";
    else if (! filter.test(email))
	error += 'Email address is not properly formed or contains illegal characters\n';
    else if (password == null || password.length ==0)
	error += "The password field was left blank.  Please enter your password and re-submit.";
    if (error.length > 0) {
	alert(error);
	return false;
    } else
	theForm.submit();
}

function expressAccountLogOut() {
    var theForm = document.getElementById("expressLogoutForm");
    theForm.submit();
}

function changeExpressPasswordVisibility() {
    var pwSpan = document.getElementById("currentPasswordVisible");
    var obSpan = document.getElementById("currentPasswordHidden");
    var changeLink = document.getElementById("passwordVisibilityLink");
    if (pwSpan.style.display == "none") {
	pwSpan.style.display = "inline";
	pwSpan.style.visibility = "visible";
	obSpan.style.display = "none";
	obSpan.style.visibility = "hidden";
	changeLink.innerHTML = "Click Here to Hide Password";
    } else {
	pwSpan.style.display = "none";
	pwSpan.style.visibility = "hidden";
	obSpan.style.display = "inline";
	obSpan.style.visibility = "visible";
	changeLink.innerHTML = "Click Here to Show Password";
    }
}

function changeInputPasswordVisibility() {
    var password = document.getElementById('password');
    var showPassword = document.getElementById('showPassword');
     if (password.type='password') {
	password.type = 'text';
	showPassword.style.display = 'none';
    }
}

function expressUpdateValidation() {
    var error = "";
    var theForm = document.getElementById("expressAccountUpdateForm");
    var filter = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
    var email = document.getElementById("email").value;
    var password = document.getElementById("password").value;
    var password2 = document.getElementById("password2").value;
    var firstName = document.getElementById("firstName").value;
    var lastName = document.getElementById("lastName").value;
    if (email != null && email.length > 0) {
	if (! filter.test(email))
	    error += 'Email address is not properly formed or contains illegal characters\n';
    }
    if (password != null && password.length > 0) {
	if (password2 == null || password2.length == 0)
	    error += "The password fields did not match.  Please re-enter your password and re-submit.\n";
	else if (password.length < 8 || password.length > 32)
	    error += "The password must contain between 8-32 characters.  Please enter a conforming password.";
	else if (password != password2)
	    error += "The password fields did not match.  Please re-enter your password and re-submit.\n";
    }
    if ((email == null || email.length == 0) && (password == null || password.length == 0) && (firstName == null || firstName.length == 0) && (lastName == null || lastName.length == 0))
	error += "All fields were left blank.\n";
    if (error.length > 0) {
	alert(error);
	return false;
    } else
	theForm.submit();
}

function expressPurchaseAccount() {
    var error = "";
    var theForm = document.getElementById("expressAccountForm");
    var filter = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
    var email = document.getElementById("purchaseAccountEmail").value;
    var password = document.getElementById("purchaseAccountPassword").value;
    var password2 = document.getElementById("purchaseAccountPassword2").value;
    var lastName = document.getElementById("purchaseAccountLastName").value;
    var firstName = document.getElementById("purchaseAccountFirstName").value;

    if  (firstName == null || firstName.length == 0)
	error += "The first name field was left blank.\n";
    if  (lastName == null || lastName.length == 0)
	error += "The last name field was left blank.\n";
    if (email != null && email.length > 0) {
	if (! filter.test(email))
	    error += 'Email address is not properly formed or contains illegal characters\n';
    } else
	error += "The email field was left blank.  Please enter your email address and re-submit the form.\n";    
    if (password != null && password.length > 0) {
	if (password2 == null || password2.length == 0)
	    error += "The password fields did not match.  Please re-enter your password and re-submit.\n";
	else if (password.length < 8 || password.length > 32)	  
	    error += "Invalid password length.  Your password must be between 8-32 characters long.";
	else if (password != password2)	 
	    error += "The password fields did not match.  Please re-enter your password and re-submit.\n";
    } else
	error += "The password field was left blank.  Please enter your password and re-sumbit the form.\n";
    if (error.length > 0) {
	alert("ERROR: " + error);
	return false;
    } else
	theForm.submit();
}

function expressLicensePurchasePriceUpdate() {
    var BASEPRICE = 2995;
    var UPGRADEPRICE = 995;
    var priceDisplay = document.getElementById("expressPurchasePrice");
    var newValue = document.getElementById("maximumActivationsSelect").value;
    var newPrice = new String(BASEPRICE + ((newValue - 3) * UPGRADEPRICE));
    newPrice = newPrice.substring(0, newPrice.length - 2) + "." + newPrice.substring(newPrice.length - 2, newPrice.length);
    priceDisplay.innerHTML = "$" + newPrice;
    //priceDisplay.innerHTML = "value";
}

function expressLicensePriceUpdate(BASEPRICE, UPGRADEPRICE) {
    var priceDisplay = document.getElementById("expressPurchasePrice");
    var newValue = document.getElementById("maximumActivationsSelect").value;
    var newPrice = new String(newValue * UPGRADEPRICE);
    newPrice = newPrice.substring(0, newPrice.length - 2) + "." + newPrice.substring(newPrice.length - 2, newPrice.length);
    priceDisplay.innerHTML = "$" + newPrice;
}


/*
  function expressLicensePriceUpdate(maximumActivations) {
  var BASEPRICE = 2995;
  var UPGRADEPRICE = 995;
  var priceDisplay = document.getElementById("expressPurchasePrice");
  var newValue = maximumActivations;
  var newPrice = new String(BASEPRICE + ((newValue - 3) * UPGRADEPRICE));
  newPrice = newPrice.substring(0, newPrice.length - 2) + "." + newPrice.substring(newPrice.length - 2, newPrice.length);
  priceDisplay.innerHTML = newPrice;
  }*/


function expressPurchaseLicense() {
    var filter = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
    var theForm = document.getElementById("expressPurchaseLicenseForm");
    var error = "";
    if (document.getElementById("customerFirstName").value == null ||
	document.getElementById("customerFirstName").value.length == 0)
	error += "* The First Name field was left blank.\n";
    if (document.getElementById("customerLastName").value == null ||
	document.getElementById("customerLastName").value.length == 0)
	error += "* The Last Name field was left blank.\n";
    if (document.getElementById("customerAddress1").value == null ||
	document.getElementById("customerAddress1").value.length == 0)
	error += "* The Street Address field was left blank.\n";
    if (document.getElementById("customerCity").value == null ||
	document.getElementById("customerCity").value.length == 0)
	error += "* The City field was left blank.\n";
    if (document.getElementById("customerState").value == null ||
	document.getElementById("customerState").value.length == 0)
	error += "* The State/Province field was left blank.\n";
    if (document.getElementById("customerZip").value == null ||
	document.getElementById("customerZip").value.length == 0)
	error += "* The Zip/Postal Code field was left blank.\n";
    if (document.getElementById("customerPhone").value == null ||
	document.getElementById("customerPhone").value.length == 0)
	error += "* The Phone Number field was left blank.\n";
    if (document.getElementById("customerEmailAddr").value == null ||
	document.getElementById("customerEmailAddr").value.length == 0)
	error += "* The Purchaser Email Address field was left blank.\n";
    else if (! filter.test(document.getElementById("customerEmailAddr").value))
	error += '* Email address is not properly formed or contains illegal characters\n';
    else if (document.getElementById("customerEmailAddr").value !=
	     document.getElementById("customerEmailAddr2").value)
	error += "* The Purchaser Email Address fields do not match.\n";
    if (document.getElementById("customerCreditCardNumber").value == null ||
	document.getElementById("customerCreditCardNumber").value.length == 0)
	error += "* The Credit Card Number field was left blank.\n";
    if (document.getElementById("customerCreditCardExpirationDate").value == null ||
	document.getElementById("customerCreditCardExpirationDate").value.length == 0)
	error += "* The Credit Card Expiration Date field was left blank.\n";
    if (document.getElementById("customerCreditCardCCV").value == null ||
	document.getElementById("customerCreditCardCCV").value.length == 0)
	error += "* The Credit Card CCV field was left blank.\n";
    if (error.length > 0) {
	alert("ERROR: Your submission contained the following errors:\n\n" + error + "\nPlease correct the errors and re-submit the form.");
	return false;
    } else
	theForm.submit();
}

function expressPurchaseComplete() {
    var theForm = document.getElementById("expressPurchaseConfirmationForm");
    theForm.submit();
}

function expressPurchaseChange(newLocation) {
    window.location = newLocation;
}

function expressPurchaseCancel() {
    var theForm = document.getElementById("expressPurchaseConfirmationForm");
    document.getElementById("formAction").value = "purchaseCancel";
    theForm.submit();
}

function expressAddLicensesCancel() {
    var theForm = document.getElementById("expressPurchaseConfirmationForm");
    if (theForm == null)
	alert("theForm is null");
    else {
	document.getElementById("formAction").value = "addLicensesCancel";
	theForm.submit();
    }
}

function checkSubmit(event, myFunction) {
    if (event.keyCode == 13)
	eval(myFunction);
    else
	return false;
}

function adminEditLicense(formName) 
{
    var theForm = document.getElementById(formName);

    theForm.submit();
}

function adminDeleteLicense(theId)
{
    var theForm = document.getElementById("theId");
}

function adminAccountValidate()
{
    var error = "";
    var theForm = document.getElementById("expressAccountForm");
    var filter = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
    var email = document.getElementById("email").value;
    var password = document.getElementById("password").value;
    var lastName = document.getElementById("lastName").value;
    var firstName = document.getElementById("firstName").value;
    
    if  (firstName == null || firstName.length == 0)
	error += "The first name field was left blank.\n";
    if  (lastName == null || lastName.length == 0)
	error += "The last name field was left blank.\n";
    if (email != null && email.length > 0) {
	if (! filter.test(email))
	    error += 'Email address is not properly formed or contains illegal characters\n';
    } else
	error += "The email field was left blank.  Please enter your email address and re-submit the form.\n";    
    if (password != null && password.length > 0) {
	if (password.length < 8 || password.length > 32)	  
	    error += "Invalid password length.  Your password must be between 8-32 characters long.";
    } else
	error += "The password field was left blank.  Please enter your password and re-sumbit the form.\n";
    if (error.length > 0) {
	alert("ERROR: " + error);
	return false;
    } else
	theForm.submit();
}

function nsUpgradeQualificationValidate() {
    var theForm = document.getElementById('nsUpgradeQualificationForm');
    var ntSerial = document.getElementById('ntSerialField');
    var ntKey = document.getElementById('ntKeyField');
    var error = "";
    if (ntSerial.value == null || ntSerial.value.length == 0)
	error += "* No value was entered in the Serial Number field\n";
    if (ntKey.value == null || ntKey.value.length == 0)
	error += "* No value was entered in the License Key field\n";
    if (error.length > 0)
	alert("ERROR: The form submission failed for the following reason:\n\n" + error + "\nPlease correct the problem and re-submit the form.");
    else
	theForm.submit();
}

function nsUpgradePurchase() {
    var filter = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
    var theForm = document.getElementById("nsUpgradePurchaseForm");
    var error = "";
    
    // validate licensee info
    if (document.getElementById("licenseeFirstName").value == null ||
	document.getElementById("licenseeFirstName").value.length == 0)
	error += "* The Licensee First Name field was left blank.\n";
    if (document.getElementById("licenseeLastName").value == null ||
	document.getElementById("licenseeLastName").value.length == 0)
	error += "* The Licensee Last Name field was left blank.\n";
    if (document.getElementById("licenseeEmail").value == null ||
	document.getElementById("licenseeEmail").value.length == 0)
	error += "* The Licensee Email field was left blank.\n";
    else if (! filter.test(document.getElementById("licenseeEmail").value))
	error += '* Licensee Email address is not properly formed or contains illegal characters\n';

    // validate Purchaser
    if (document.getElementById("customerFirstName").value == null ||
	document.getElementById("customerFirstName").value.length == 0)
	error += "* The Purchaser First Name field was left blank.\n";
    if (document.getElementById("customerLastName").value == null ||
	document.getElementById("customerLastName").value.length == 0)
	error += "* The Purchaser Last Name field was left blank.\n";
    if (document.getElementById("customerAddress1").value == null ||
	document.getElementById("customerAddress1").value.length == 0)
	error += "* The Purchaser Street Address field was left blank.\n";
    if (document.getElementById("customerCity").value == null ||
	document.getElementById("customerCity").value.length == 0)
	error += "* The Purchaser City field was left blank.\n";
    if (document.getElementById("customerState").value == null ||
	document.getElementById("customerState").value.length == 0)
	error += "* The Purchaser State/Province field was left blank.\n";
    if (document.getElementById("customerZip").value == null ||
	document.getElementById("customerZip").value.length == 0)
	error += "* The Purchaser Zip/Postal Code field was left blank.\n";
    if (document.getElementById("customerPhone").value == null ||
	document.getElementById("customerPhone").value.length == 0)
	error += "* The Purchaser Phone Number field was left blank.\n";
    if (document.getElementById("customerEmailAddr").value == null ||
	document.getElementById("customerEmailAddr").value.length == 0)
	error += "* The Purchaser Purchaser Email Address field was left blank.\n";
    else if (! filter.test(document.getElementById("customerEmailAddr").value))
	error += '* Purchaser Email address is not properly formed or contains illegal characters\n';
    else if (document.getElementById("customerEmailAddr").value !=
	     document.getElementById("customerEmailAddr2").value)
	error += "* The Purchaser Email Address fields do not match.\n";
    if (document.getElementById("customerCreditCardNumber").value == null ||
	document.getElementById("customerCreditCardNumber").value.length == 0)
	error += "* The Credit Card Number field was left blank.\n";
    if (document.getElementById("customerCreditCardExpirationDate").value == null ||
	document.getElementById("customerCreditCardExpirationDate").value.length == 0)
	error += "* The Credit Card Expiration Date field was left blank.\n";
    if (document.getElementById("customerCreditCardCCV").value == null ||
	document.getElementById("customerCreditCardCCV").value.length == 0)
	error += "* The Credit Card CCV field was left blank.\n";
    if (error.length > 0) {
	alert("ERROR: Your submission contained the following errors:\n\n" + error + "\nPlease correct the errors and re-submit the form.");
	return false;
    } else
	theForm.submit();
}

function nsUpgradeComplete() {
    var theForm = document.getElementById("nsUpgradeConfirmationForm");
    theForm.submit();
}

function nsUpgradeCancel() {
    var theForm = document.getElementById("nsUpgradeConfirmationForm");
    document.getElementById("formAction").value = "purchaseCancel";
    theForm.submit();
}

var filter = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;

function validateNsDesktopEmailSignUp() {
    var theForm = document.getElementById("nsDesktopEmailSignUpForm");
    var error = "";
    if (document.getElementById("email").value == null ||
	document.getElementById("email").value.length == 0)
	error += "* The email address field was left blank.\n";
    else if (! filter.test(document.getElementById("email").value))
	error += '* The email address is not properly formed or contains illegal characters\n';
    if (document.getElementById("firstName").value == null ||
	document.getElementById("firstName").value.length == 0)
	error += "* The first name field was left blank.\n";
    if (document.getElementById("lastName").value == null ||
	document.getElementById("lastName").value.length == 0)
	error += "* The last name field was left blank.\n";
   if (error.length > 0) {
	alert("ERROR: Your submission contained the following errors:\n\n" + error + "\nPlease correct the errors and re-submit the form.");
	return false;
    } else
	theForm.submit();
}

function validateExpressDesktopEmailListConfirmation() {
    var theForm = document.getElementById("nsDesktopEmailConfirmationForm");
    var error = "";
    if (document.getElementById("email").value == null ||
	document.getElementById("email").value.length == 0)
	error += "* The email address field was left blank.\n";
    else if (! filter.test(document.getElementById("email").value))
	error += '* The email address is not properly formed or contains illegal characters\n';
    if (document.getElementById("confirmationNumber").value == null ||
	document.getElementById("confirmationNumber").value.length == 0)
	error += "* The confirmation number field was left blank.\n";
    if (error.length > 0) {
	alert("ERROR: Your submission contained the following errors:\n\n" + error + "\nPlease correct the errors and re-submit the form.");
	return false;
    } else
	theForm.submit();
}

function expressDesktopEmailUnsunscribe() {
    var theForm = document.getElementById('nsDesktopEmailUnsubscribeForm');
    var error = "";
    if (document.getElementById("email").value == null ||
	document.getElementById("email").value.length == 0)
	error += "* The email address field was left blank.\n";
    else if (! filter.test(document.getElementById("email").value))
	error += '* The email address is not properly formed or contains illegal characters\n';
    if (error.length > 0) {
	alert("ERROR: Your submission contained the following errors:\n\n" + error + "\nPlease correct the errors and re-submit the form.");
	return false;
    } else
	theForm.submit();
}

//-->

