var defaultEmptyOK = false;
var whitespace = " \t\n\r"; 
var alreadySubmitted = false;
var EMAIL = "email";
var EMAIL_MSG = "Please enter a valid email address.";
var USER_NAME = "userName";
var USER_NAME_MSG = "Please enter a username that is at least 6 characters long\nand contains only letters and numbers.";
var PASSWORD = "password";
var PASSWORD_MSG = "Please enter a password that is at least 6 characters long\ncontaining only letters and numbers.";
var PASSWORD2 = "password2";
var PASSWORD2_MSG = "Your password entries must match, please re-enter.";
var GENDER = "gender";
var GENDER_MSG = "Please select your gender.";
var BIRTHYEAR = "birthYear";
var BIRTHYEAR_MSG = "Please enter a valid year of birth. You must be at least 13 years of age to register.";

errorMsgArr = new Array();
errorMsgArr[EMAIL] = EMAIL_MSG;
errorMsgArr[USER_NAME] = USER_NAME_MSG;
errorMsgArr[PASSWORD] = PASSWORD_MSG;
errorMsgArr[PASSWORD2] = PASSWORD2_MSG;
errorMsgArr[GENDER] = GENDER_MSG;
errorMsgArr[BIRTHYEAR] = BIRTHYEAR_MSG;

function trim(str) {
  	while (str.substring(0,1) == ' ') str = str.substring(1,str.length);
	while (str.substring(str.length-1,str.length) == ' ') str = str.substring(0,str.length-1);
	return str;
}
function isWhitespace (s) {
	var i;
	if (isEmpty(s)) return true;
	for (i = 0; i < s.length; i++) {
		var c = s.charAt(i);
		if (whitespace.indexOf(c) == -1) return false;
	}
	return true;
}
function isEmpty(s) {
	return ((s == null) || (s.length == 0))
}


function validateNewOnlineOnly(form) {
	
	
	if(!isValidUserName(form.userName.value)) {
		alert(errorMsgArr[USER_NAME]); form.userName.focus();
		return false;
	}
	if(isWhitespace(form.password.value)) {
		alert(errorMsgArr[PASSWORD]); form.password.focus();
		return false;
	}	
	if(isWhitespace(form.password2.value)) {
		alert("Please confirm password"); 
		form.password2.focus();
		return false;
	}	
	if(form.password.value!=form.password2.value) {
		alert(errorMsgArr[PASSWORD2]); form.password2.focus();
		return false;
	}	
	if(!isValidUserName(form.password.value)) {
		alert(errorMsgArr[PASSWORD]); 
		form.password.focus();
		return false;
	}
	if(!isValidZipCode(form.zipCode.value)) {
		alert("Please enter a valid zip code"); 
		form.password.focus();
		return false;
	}
	
	if(!isValidEmail(form.email.value)) {
		alert(errorMsgArr[EMAIL]);
		form.email.focus();
		return false;
	}
	
	if(!isValidBirthYear(form.birthYear.value)) {
		alert(errorMsgArr[BIRTHYEAR]);
		form.birthYear.focus();
		return false;
	}
	
	if(!validateRadioButton(form.gender)) {
		alert(errorMsgArr[GENDER]);
		return false;
	}
	
	return true;
}


function isValidEmail(email) {
	if(isWhitespace(email)) return false;
	email = trim(email);
	var reg1 = /\s/;
	if(reg1.test(email)) return false;
	var reg2 = /^.+@.+\.[a-zA-Z]+/;
	if(reg2.test(email)) return true;
	return false;
}
function isValidDiscusNum(discus) {
	if(isWhitespace(discus)) return false;
	discus = trim(discus);
	var reg1 = /\D/;
	return(!reg1.test(discus));
}
function isValidUserName(userName) {
	if(isWhitespace(userName)) return false;
	userName = trim(userName);
	var reg1 = /\s/;
	if(reg1.test(userName)) return false;
	var reg2 = /\W/;
	if(reg2.test(userName)) return false;
	if(userName.length<6) return false;	
	return true;
}

function isValidZipCode(userName) {
	if(isWhitespace(userName)) return false;
	userName = trim(userName);
	var reg1 = /\s/;
	if(reg1.test(userName)) return false;
	var reg2 = /\W/;
	if(reg2.test(userName)) return false;
	if(userName.length!=5) return false;	
	return true;
}
function isValidBirthYear(birthYear) {
	if(isWhitespace(birthYear)) return false;
	birthYear = trim(birthYear);
	var reg1 = /\D/;
	if(reg1.test(birthYear)) return false;
	var now = new Date();
	var ny = now.getFullYear();
	if(birthYear>(ny-13)) return false;
	return true;
}
function validateRadioButton(radioButton) {
	index = -1;
	for(i=0; i<radioButton.length; i++) {
		if(radioButton[i].checked) index = i;
	}
	return(index>-1);
}
function getRadioValue(radioButton) {
	index = -1;
	for(i=0; i<radioButton.length; i++) {
		if(radioButton[i].checked) { 
			return radioButton[i].value;	
		}
	}
	return("");
}
function validateSelect(select) {
	index = -1;
	for(i=0; i<select.length; i++) {
		if(select[i].selected) { 
			index = i;
			break;
		}
	}
	return(index>-1);
}
function getSelectedValue(select) {
	index = -1;
	for(i=0; i<select.length; i++) {
		if(select[i].selected) { 
			return select[i].value;	
		}
	}
	return("");
}

function show_registration() {
	var reg_form = document.getElementById('RegistrationContainer');
	reg_form.style.display = 'inline';
	reg_form.style.visibility = 'visible';
	reg_form.style.zIndex = '1000';
	
	var reg_form2 = document.getElementById('reg_form');
	reg_form2.style.display = 'inline';
	reg_form2.style.visibility = 'visible';
	reg_form2.style.zIndex = '1001';
}

function hide_registration() {
	var reg_form = document.getElementById('RegistrationContainer');
	reg_form.style.display = 'none';
	reg_form.style.visibility = 'hidden';
	reg_form.style.zIndex = '0';
	
	var reg_form2 = document.getElementById('reg_form');
	reg_form2.style.display = 'none';
	reg_form2.style.visibility = 'hidden';
	reg_form2.style.zIndex = '0';
}

function show_login() {
	var reg_form = document.getElementById('RegistrationContainer');
	reg_form.style.display = 'inline';
	reg_form.style.visibility = 'visible';
	reg_form.style.zIndex = '1000';
	
	var sl_login = parent.document.getElementById('sitelife_login');
	sl_login.style.display = 'inline';
	sl_login.style.visibility = 'visible';
	sl_login.style.zIndex = '1001';
	sl_login.focus();
}

function hide_login() {
	var reg_form = document.getElementById('RegistrationContainer');
	reg_form.style.display = 'none';
	reg_form.style.visibility = 'hidden';
	reg_form.style.zIndex = '0';
	
	var sl_login = parent.document.getElementById('sitelife_login');
	sl_login.style.display = 'none';
	sl_login.style.visibility = 'hidden';
	sl_login.style.zIndex = '0';
}

function show_getpass() {
	var reg_form = document.getElementById('RegistrationContainer');
	reg_form.style.display = 'inline';
	reg_form.style.visibility = 'visible';
	reg_form.style.zIndex = '1000';
	
	var sl_login = parent.document.getElementById('forgotten_password');
	sl_login.style.display = 'inline';
	sl_login.style.visibility = 'visible';
	sl_login.style.zIndex = '1001';
}

function hide_getpass() {
	var reg_form = document.getElementById('RegistrationContainer');
	reg_form.style.visibility = 'hidden';
	reg_form.style.zIndex = '0';
	
	var sl_login = parent.document.getElementById('forgotten_password');
	sl_login.style.visibility = 'hidden';
	sl_login.style.zIndex = '0';
}

function show_faq() {
	var faq = parent.document.getElementById('faq_page');
	faq.style.display = 'inline';
	faq.style.visibility = 'visible';
	faq.style.zIndex = '1001';
}

function hide_faq() {
	var faq = parent.document.getElementById('faq_page');
	faq.style.display = 'none';
	faq.style.visibility = 'hidden';
	faq.style.zIndex = '0';
}
function show_help() {

            var help = parent.document.getElementById('pluckhelp_page');

            if(help) {

                        help.style.display = 'inline';

                        help.style.visibility = 'visible';

                        help.style.zIndex = '1001';

            }

}

function hide_help() {

            var help = parent.document.getElementById('pluckhelp_page');

            help.style.display = 'none';

            help.style.visibility = 'hidden';

            help.style.zIndex = '0';

}

function show_resend() {

            var reg_form = document.getElementById('RegistrationContainer');

            if(reg_form) {

                        reg_form.style.display = 'inline';

                        reg_form.style.visibility = 'visible';

                        reg_form.style.zIndex = '1000';

            }

            

            var sl_login = parent.document.getElementById('resend_confirmation');

            sl_login.style.display = 'inline';

            sl_login.style.visibility = 'visible';

            sl_login.style.zIndex = '1001';

}

 

function hide_resend() {

            var reg_form = document.getElementById('RegistrationContainer');

            if(reg_form) {

                        reg_form.style.visibility = 'hidden';

                        reg_form.style.zIndex = '0';

            }

            

            var sl_login = parent.document.getElementById('resend_confirmation');

            sl_login.style.visibility = 'hidden';

            sl_login.style.zIndex = '0';

}

function ResendConfirm() {
            var xmlHttp;
            var email_sent = document.getElementById('email_sent');
            var username = document.resend_confirmation.userName.value;
            var email = document.resend_confirmation.email.value;
            var scriptname = "/share/resend_confirmation.php?userName=" + username + "&email=" + email;
            try {
                        xmlHttp = new XMLHttpRequest();
            }
            catch(e) {
                        try {
                                    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
                        }
            catch (e) {
                                    try {
                                                xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
                                    }
                                    catch (e) {
                                                alert("not supported");
                                    }
            }
            }
            xmlHttp.onreadystatechange=function() {
                        if(xmlHttp.readyState == 4) {
                                    email_sent.innerHTML = xmlHttp.responseText;
                        }
            }
            xmlHttp.open("GET",scriptname, true);
            xmlHttp.send(null);
}

function checkLogin() {
	var xmlHttp;
	var login_status = document.getElementById('login_result');
	var username = document.sitelife_login_form.userName.value;
	var password = document.sitelife_login_form.password.value;
	var redirect = document.sitelife_login_form.redirect.value;
	var remember = document.sitelife_login_form.remember.checked;
	var scriptname = "/share/passport_login.php?userName=" + username + "&password=" + password + "&remember=" + remember  + "&redirect=" + redirect;
	try {
		xmlHttp = new XMLHttpRequest();
	}
	catch(e) {
		try {
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		}
    	catch (e) {
			try {
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e) {
				alert("not supported");
			}
      	}
	}
	xmlHttp.onreadystatechange=function() {
		if(xmlHttp.readyState == 4) {
			login_status.innerHTML = xmlHttp.responseText;
			if(xmlHttp.responseText == "logged in") {
				//hide_login();
				setTimeout('location.reload(true)', 1000);
			}
		}
	}
	xmlHttp.open("GET",scriptname, true);
	xmlHttp.send(null);
}

function RetrievePassword() {
	var xmlHttp;
	var password_retrieved = document.getElementById('password_retrieved');
	var username = document.retrieve_password.userName.value;
	var email = document.retrieve_password.email.value;
	var scriptname = "/share/retrieve_password.php?username=" + username + "&email=" + email;
	try {
		xmlHttp = new XMLHttpRequest();
	}
	catch(e) {
		try {
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		}
    	catch (e) {
			try {
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e) {
				alert("not supported");
			}
      	}
	}
	xmlHttp.onreadystatechange=function() {
		if(xmlHttp.readyState == 4) {
			password_retrieved.innerHTML = xmlHttp.responseText;
		}
	}
	xmlHttp.open("GET",scriptname, true);
	xmlHttp.send(null);
}
function ResendConfirm() {
	var xmlHttp;
	var email_sent = document.getElementById('email_sent');
	var username = document.resend_confirmation.userName.value;
	var email = document.resend_confirmation.email.value;
	var scriptname = "/share/resend_confirmation.php?userName=" + username + "&email=" + email;
	try {
		xmlHttp = new XMLHttpRequest();
	}
	catch(e) {
		try {
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		}
    	catch (e) {
			try {
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e) {
				alert("not supported");
			}
      	}
	}
	xmlHttp.onreadystatechange=function() {
		if(xmlHttp.readyState == 4) {
			email_sent.innerHTML = xmlHttp.responseText;
		}
	}
	xmlHttp.open("GET",scriptname, true);
	xmlHttp.send(null);
}
