function emailCheck (emailStr) {

/* The following variable tells the rest of the function whether or not
to verify that the address ends in a two-letter country or well-known
TLD.  1 means check it, 0 means don't. */

var checkTLD=1;

/* The following is the list of known TLDs that an e-mail address must end with. */

var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;

/* The following pattern is used to check if the entered e-mail address
fits the user@domain format.  It also is used to separate the username
from the domain. */

var emailPat=/^(.+)@(.+)$/;

/* The following string represents the pattern for matching all special
characters.  We don't want to allow special characters in the address. 
These characters include ( ) < > @ , ; : \" . [] */

var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";

/* The following string represents the range of characters allowed in a 
username or domainname.  It really states which chars aren't allowed.*/

var validChars="\[^\\s" + specialChars +"\]";

/* The following pattern applies if the"user" is a quoted string (in
which case, there are no rules about which characters are allowed
and which aren't; anything goes).  E.g."jiminy cricket"@disney.com
is a legal e-mail address. */

var quotedUser="(\"[^\"]*\")";

/* The following pattern applies for domains that are IP addresses,
rather than symbolic names.  E.g. joe@[123.124.233.4] is a legal
e-mail address. NOTE: The square brackets are required. */

var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;

/* The following string represents an atom (basically a series of non-special characters.) */

var atom=validChars + '+';

/* The following string represents one word in the typical username.
For example, in john.doe@somewhere.com, john and doe are words.
Basically, a word is either an atom or quoted string. */

var word="(" + atom +"|" + quotedUser +")";

// The following pattern describes the structure of the user

var userPat=new RegExp("^" + word +"(\\." + word +")*$");

/* The following pattern describes the structure of a normal symbolic
domain, as opposed to ipDomainPat, shown above. */

var domainPat=new RegExp("^" + atom +"(\\." + atom +")*$");

/* Finally, let's start trying to figure out if the supplied address is valid. */

/* Begin with the coarse pattern to simply break up user@domain into
different pieces that are easy to analyze. */

var matchArray=emailStr.match(emailPat);

if (matchArray==null) {

/* Too many/few @'s or something; basically, this address doesn't
even fit the general mould of a valid e-mail address. */

alert("We cannot process your registration because you have not entered an email address or the email address you have entered is not valid.");
return false;
}
var user=matchArray[1];
var domain=matchArray[2];

// Start by checking that only basic ASCII characters are in the strings (0-127).

for (i=0; i<user.length; i++) {
if (user.charCodeAt(i)>127) {
alert("This is not a valid email address.");
return false;
   }
}
for (i=0; i<domain.length; i++) {
if (domain.charCodeAt(i)>127) {
alert("This is not a valid email address.");
return false;
   }
}

// See if"user" is valid 

if (user.match(userPat)==null) {

// user is not valid

alert("This is not a valid email address.");
return false;
}

/* if the e-mail address is at an IP address (as opposed to a symbolic
host name) make sure the IP address is valid. */

var IPArray=domain.match(ipDomainPat);
if (IPArray!=null) {

// this is an IP address

for (var i=1;i<=4;i++) {
if (IPArray[i]>255) {
alert("This is not a valid email address.");
return false;
   }
}
return true;
}

// Domain is symbolic name.  Check if it's valid.
 
var atomPat=new RegExp("^" + atom +"$");
var domArr=domain.split(".");
var len=domArr.length;
for (i=0;i<len;i++) {
if (domArr[i].search(atomPat)==-1) {
alert("This is not a valid email address.");
return false;
   }
}

/* domain name seems valid, but now make sure that it ends in a
known top-level domain (like com, edu, gov) or a two-letter word,
representing country (uk, nl), and that there's a hostname preceding 
the domain or country. */

if (checkTLD && domArr[domArr.length-1].length!=2 && 
domArr[domArr.length-1].search(knownDomsPat)==-1) {
alert("This is not a valid email address.");
return false;
}

// Make sure there's a host name preceding the domain.

if (len<2) {
alert("This is not a valid email address.");
return false;
}
	else 
	{	
return true;
	}
} 

// Script for interactive country select dropdowns

	var array1 = null;
	var array2 = null;
	
	var uk = new Array();
	uk[0] ="United Kingdom";
	
	var uk_val = new Array();
	uk_val[0] ="UK";

	var usa = new Array();
	usa[0] ="United States of America";
	usa[1] ="Canada";
	
	var usa_val = new Array();
	usa_val[0] ="USA";
	usa_val[1] ="CA";
	

//for (counter=0; counter < 2; counter++){
//if (document.checkout.worldloc[counter].checked == true){
//document.checkout.worldloc[counter].checked == false;
//}//ends IF
//}//ends for

function loadbox2(){

//clearing loop
var box2 = document.checkout.country.options;
for (i = 2; i < document.checkout.country.options.length; i++){
box2[i].text ="";
box2[i].value ="";
}//ends clearing FOR loop


document.checkout.country.options[0].selected = true;

//begins radio search
for (counter=0; counter < 2; counter++){
if (document.checkout.worldloc[counter].checked == true){
var choice = document.checkout.worldloc[counter].value;
}//ends IF
}//ends for

if (choice =="uk"){
array1 = uk;
array2 = uk_val;
document.checkout.country.options[2].selected = true;
}//ends first (uk) IF


if (choice =="usa"){
array1 = usa;
array2 = usa_val;
}//ends second(usa) IF

var box2 = document.checkout.country.options;

//clearing loop
for (i = 2; i < document.checkout.country.options.length; i++){
box2[i].text ="";
box2[i].value ="";
}//ends clearing FOR loop

var db_countrval =""

for (i = 0; i < array1.length; i++){
box2[i + 2].text = array1[i];
box2[i + 2].value = array2[i];
if (box2[i + 2].value == db_countrval){
document.checkout.country.options[i + 2].selected = true;
}// ends if (array2[i]== db_countrval)
}// ends populating FOR
}//ends population function
	
function newWindow(page) {
prodWindow = window.open(page, 'prodWin', 'width=740,height=400')
prodWindow.focus()
}

function previous() {
if (document.referrer !="") {
document.write("<a href='javascript:window.location=document.referrer'>&lt&ltReturn to floral designs</a>")
} //end if
}

function smWinBuy(prod) {
opener.window.location=prod;
window.close();
}

function showHideLayerSwitch(layerName){ //this function creates the display/hide text of the news function when you click on the title
thisID = document.getElementById(layerName)
displayVar = thisID.style.display
if (displayVar == "" || displayVar == "none"){
displayVar = "block"
}
else{
displayVar = "none"
}
thisID.style.display = displayVar
}

