
function openInfoPage( url, w, h ) {

window.open( url, 'info_page', 'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=yes,resizable=0,width=' + w + ',height=' + h ) ;

}

function openHelpWin(URL) {

	hWindow=window.open(URL,"helpwindow","toolbar=yes,width=660,height=300,status=yes,scrollbars=yes, resizable=yes,location=yes,menubar=yes");

}


function GetSidFromCookie() {

// get the sid out of the cookie

	if(document.cookie.indexOf('fcwt=') != -1) {

		my_sid = document.cookie.substring(document.cookie.indexOf('fcwt=') + 5);

		if(my_sid.indexOf(';') != -1) {

			my_sid = my_sid.substring(0,my_sid.indexOf(';'));

		}
	}

	else {my_sid = 'unknown';}
}



function CheckActivationForm() {

	authcode = document.ActivationForm.authcode.value;
	passwd = document.ActivationForm.password.value;
	repasswd = document.ActivationForm.repassword.value;
	firstname = document.ActivationForm.firstname.value;
	lastname = document.ActivationForm.lastname.value;
	birthmon = document.ActivationForm.birthmon.value;
	birthmday = document.ActivationForm.birthmday.value;	
	birthyear = document.ActivationForm.birthyear.value;
	country = document.ActivationForm.country.value;
	postalcode = document.ActivationForm.postalcode.value;
	postalcode = postalcode.replace(/^\s+/, '');		// trim leading and trailing spaces for validation
	postalcode = postalcode.replace(/\s+$/, '');		// Javascript regexps suck, can't combine with a pipe
	income = document.ActivationForm.income.value;

	valid_un = new RegExp(/[^a-z]/);
	passwd_un = new RegExp(/[^a-z0-9]/);
	firstlast_invalid = new RegExp(/[^A-Za-z\-\.\s]/);
	zipcode_valid = new RegExp(/^\d\d\d\d\d$/);					// must be 5 digits, no more, no less
	postalcode_valid = new RegExp(/^[A-Za-z]\d[A-Za-z] \d[A-Za-z]\d$/);		// those crazy canucks
	postalcode_variant_valid = new RegExp(/^[A-Za-z]\d[A-Za-z]\d[A-Za-z]\d$/);	// some of them can't type

	my_date = new Date();


	if(authcode == '') {

		alert('Please enter your authorization code.');
		document.ActivationForm.authcode.focus();
		return false;
	}

	else if(authcode != authcode.toLowerCase()) {

		alert('You must enter your authorization code in lower case.  Please check that your Caps Lock key is turned off and try again.');
		document.ActivationForm.authcode.focus();
		return false;
	}

	else if(valid_un.test(authcode)) {

		alert('You have entered an invalid authorization code.  Your authorization code contains only lowercase letters, no spaces, and no special characters.  Please try again.');
		document.ActivationForm.authcode.focus();
		return false;
	}

	else if(authcode.length != 8) {

		alert('You have entered an invalid authorization code.  Your authorization code is eight characters in length.  Please try again.');
		document.ActivationForm.authcode.focus();
		return false;
	}

	else if (passwd.length < 6) {
	      alert('You have entered an invalid password.  Your password must contain 6 or more characters in length.  Please try again.');
		document.ActivationForm.password.focus();
		return false;
        }	

	else if (passwd_un.test(passwd)) {
	      alert('The password can only contain lowercase letters or numbers.');
	      document.ActivationForm.password.focus();
	      return false;

	}
	else if ( passwd != repasswd ) {
	      alert('The passwords do not match. Please make sure you type the same password in both text fields.');
	      document.ActivationForm.password.focus();
	      return false;
	}

	else if (firstname == '') {
		alert('Please enter a first name.');
		document.ActivationForm.firstname.focus();
		return false;
	}

	else if(firstlast_invalid.test(firstname)) {
		alert('Your first name contains invalid characters.');
		document.ActivationForm.firstname.focus();
		return false;
	}

	else if (lastname == '') {
		alert('Please enter a last name.');
		document.ActivationForm.lastname.focus();
		return false;
	}

	else if(firstlast_invalid.test(lastname)) {
		alert('Your last name contains invalid characters.');
		document.ActivationForm.lastname.focus();
		return false;
	}

	else if(!document.ActivationForm.gender[0].checked &&
	!document.ActivationForm.gender[1].checked) {
		alert('Please indicate your gender.');
		return false;
	}

	else if(birthmon == '') {
		alert('Please enter your date of birth.');
		document.ActivationForm.birthmon.focus();
		return false;
	}

	else if(birthmday == '') {
		alert('Please enter your date of birth.');
		document.ActivationForm.birthmday.focus();
		return false;
	}

	else if(birthyear == '') {
		alert('Please enter your date of birth.');
		document.ActivationForm.birthyear.focus();
		return false;
	}

	// let's check nobody entered Feb 31 as a birthdate etc

	checkdate = new Date(birthyear,birthmon - 1,birthmday);		// note our <select> has months from 1 to 12 not 0 to 11
	checkdate_month = checkdate.getMonth();

	if(checkdate.getMonth() != birthmon - 1) {

	// if you create a date object with an invalid date, it always creates one in the following month
	// hence the above test fails

		alert('You entered an invalid birthdate.');
		document.ActivationForm.birthmon.focus();
		return false;
	}

	// let's see if they're old enough

	old_enough = new Date();
	this_year = old_enough.getFullYear();
	old_enough.setFullYear(old_enough.getFullYear() - 13);


	if(checkdate.valueOf() > old_enough.valueOf()) {
		alert('You must be at least 13 years old to use this service.');
		document.ActivationForm.birthyear.focus();
		return false;
	}

	else if(country == '') {
		alert('Please enter a country.');
		document.ActivationForm.country.focus();
		return false;
	}

	else if((country == 'us' || country == 'ca') && postalcode == '') {
		alert('Please enter your zip/postal code.');
		document.ActivationForm.postalcode.focus();
		return false;
	}

	else if(country == 'us' && !zipcode_valid.test(postalcode)) {
		alert('You entered an invalid zipcode.');
		document.ActivationForm.postalcode.focus();
		return false;
	}	

	else if(country == 'ca' && !postalcode_valid.test(postalcode) && !postalcode_variant_valid.test(postalcode)) {
		alert('You entered an invalid postal code.');
		document.ActivationForm.postalcode.focus();
		return false;
	}

	return true;

}


function checkSuggestUsernameForm() {

        if(document.SuggestUsernameForm.suggestion[0].checked) {                // otherwise, nothing to validate

                uname = document.SuggestUsernameForm.username.value;

                valid_un = new RegExp(/[^a-z0-9]/);

                if (uname == '') {

                        alert('Please enter a username.');
                        document.SuggestUsernameForm.username.focus();
                        return false;
                }

                else if (valid_un.test(uname)) {

                        alert(uname + " is an invalid username.  Your username must contain only lowercase letters or numbers, no spaces, and no special characters.");
                        document.SuggestUsernameForm.username.focus();
                        return false;
                }

                else if(uname.length < 5) {

                        alert("Your username must be at least 5 characters in length.")
                        document.SuggestUsernameForm.username.focus();
                        return false;
                }

                else if (uname == 'https'||uname == 'search'||uname == 'login'||uname == 'admin'
                ||uname == 'manage'||uname == 'update'||uname == 'images'|| uname == 'gifts'
                || uname == 'cameras' || uname == 'survey' || uname == 'rawimages') {

                        alert(uname + " is not an acceptable username.  Please choose another.");
                        document.SuggestUsernameForm.username.focus();
                        return false;
                }
        }

        return true;
}


function checkLoginForm() {

	uname = document.LoginForm.username.value.toLowerCase();
	password = document.LoginForm.password.value;

	valid_un = new RegExp("[^a-z0-9 _]")

// check for username to process

	if (uname == "") {
		alert("Please enter your username.");
		document.LoginForm.username.focus();
		return false;
	} 
  
// check for illegal characters

	else if (valid_un.test(uname)) {
		alert(uname + " is an invalid username.  Your username can contain only letters or numbers, and no special characters.");
		document.LoginForm.username.focus();
		return false;
	}
  
// check length

	else if(uname.length < 5) {
		alert("Your username must be at least 5 characters in length.")
		document.LoginForm.username.focus();
		return false;
	}

	else if(password == '') {
		alert("Please enter your password.");
		document.LoginForm.password.focus();
		return false;
	}

	else if(password.length < 5) {
		alert("Your password must be at least 5 characters in length.")
		document.LoginForm.password.focus();
		return false;
	}
	
	return true;
}



function checkRegisterForm() {

	uname = document.RegisterForm.username.value;
	email_address = document.RegisterForm.email_address.value;
	email_address_retype = document.RegisterForm.email_address_retype.value;
	email_address = email_address.replace(/^\s+/, '');		// trim leading and trailing spaces for validation
	email_address = email_address.replace(/\s+$/, '');		// Javascript regexps suck, can't combine with a pipe
	email_address_retype = email_address_retype.replace(/^\s+/, '');
	email_address_retype = email_address_retype.replace(/\s+$/, '');

	valid_un = new RegExp("[^a-z0-9]")

// check for username to process

	if (uname == '') {
		alert("Please enter a username.");
		document.RegisterForm.username.focus();
		return false;
	} 
  
// check for illegal characters

	else if (valid_un.test(uname)) {
		alert(uname + " is an invalid username.  Your username must contain only lowercase letters or numbers, no spaces, and no special characters.");
		document.RegisterForm.username.focus();
		return false;
	}
  
// check length

	else if(uname.length < 5) {
		alert("Your username must be at least 5 characters in length.")
		document.RegisterForm.username.focus();
		return false;
	}


// reserved names

	else if (uname == "https"||uname == "search"||uname == "login"||uname ==
		"admin"||uname == "manage"||uname == "update"||uname == "images"||
		uname == "gifts"||uname == "cameras"||uname == "survey"||uname == "rawimages") {
		alert(uname + " is not an acceptable username.  Please choose another.");
		document.RegisterForm.username.focus();
		return false;
	}

	else if (email_address == "") {
		alert("Please enter your email address.");
		document.RegisterForm.email_address.focus();
		return false;
	} 

	else {

// check email address syntax

		var filter=/^.+@.+\..{2,3}$/;
		if(!(filter.test(email_address))) {
			alert("The email address you entered is invalid.");
			document.RegisterForm.email_address.focus();
			return false;
		}
	}

// check retyped email address is the same as first one

	if(email_address != email_address_retype) {
		alert('Your email addresses do not match.')
		document.RegisterForm.email_address.focus();
		return false;
	}

// Check Agree

	if (document.RegisterForm.agree.checked == false ){
		alert('You must agree to the terms and conditions to join FortuneCity.');
		return false;
	} 
  
	return true;
}


