//
//  Register JS Functions
//

//validate the password
function validatePassword(passwordValue){

	var count = 0;
	
	if ( passwordValue.length < 6 )	return false;
	
	if ( passwordValue.match(/\w*[0-9]/) ) count++;	
	if ( passwordValue.match(/\w*[a-z]/) ) count++;
	if ( passwordValue.match(/\w*[A-Z]/) ) count++;
	if ( passwordValue.match(/\w*[@#%$&*.+:;_,<>?!-]/) ) count++;
	
	if (count >= 3) return true;
	else return false;
}

//disable the submit button
function Save(){
	
	obj = document.loginForm;
	var btnSubmit = document.getElementById("btnSubmit");
	
	   if (validateLogin(obj))
	{
		btnSubmit.href = "#";
		obj.submit();
	} 
}

//disable the submit button
function saveRegister(form){
	document.getElementById('btnSubmitRegister').href = "#";
    if (validateInfo(form))
	{	
		form.submit();
	} else{
		document.getElementById('btnSubmitRegister').href = "javascript: saveRegister(document.registerForm);";
	}
}
	
//validate the form data
function validateInfo(frm) {

    var ageOK = getCookie('over-18');
  	
  	if ( ageOK == 'no' ){
  		alert ("Sorry, you must be at least 18 years of age to use this function of the website.");
  		return false
  	}
  
  	var els = frm.elements;
  	for (var i = 0; i < els.length; i++) if (els[i].type == 'text') els[i].value = els[i].value.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
  	
    if (frm.firstName.value == "") {
        alert ("Please enter your first name.")
        frm.firstName.focus()
        return false
    }else if (isName(frm.firstName.value) == false) {
        alert ("Invalid first name.")
        frm.firstName.focus()
        return false
    } else if (frm.lastName.value == "") {
        alert ("Please enter your last name.")
        frm.lastName.focus()
        return false
    } else if (isName(frm.lastName.value) == false) {
        alert ("Invalid last name.")
        frm.lastName.focus()
        return false
    } else if ( frm.email.value == "" ){
    	alert("Please enter your e-mail address.");
        frm.email.focus()
        return false
    } else if ( !isEmail(frm.email.value) ) {
    	alert("Invalid e-mail address.");
        frm.email.focus()
        return false
    } else if ( frm.reEnterEmail.value == "" ){
    	alert("Please re-enter your e-mail address.");
        frm.reEnterEmail.focus()
        return false
    } else if ((frm.email.value) != (frm.reEnterEmail.value)) {
        alert ("The email and email confirmation you typed in do not match. Please check.")
        frm.email.focus()
        return false
    } else if (GetRadioValue(frm.gender) == null ) {
        alert ("Please enter with your gender.")
        return false    
    } else if (frm.month.value == "" ) {
        alert ("Please pick your birth month.")
        frm.month.focus()
        return false
    } else if (frm.day.value == "" ) {
        alert ("Please pick your birth day.")
        frm.day.focus()
        return false
    } else if (frm.year.value == "" ) {
        alert ("Please pick your birth year.")
        frm.year.focus()
        return false
    } else if ( !isDate( frm.day.value, frm.month.value, frm.year.value ) ){
        alert ("Invalid birth date specified.")
        frm.month.focus()
        return false   
    } else if ( frm.password.value == "" ){
    	alert("Please enter a password.")
    	frm.password.focus();
    	return false;
    } else if ( validatePassword(frm.password.value) == false ){
    	alert("Your password should be a combination of 6 or more letters, numbers and special characters.");	
    	frm.password.focus();
    	return false;
    } else if ( frm.confirmPassword.value == "" ){
    	alert("Please re-enter your password.");	
    	frm.confirmPassword.focus();
    	return false;
    } else if ( frm.password.value != frm.confirmPassword.value ){
    	alert("The password and password confirmation you typed in do not match. Please check.");	
    	frm.password.focus();
    	return false;
    } else if ( frm.zip.value != "" && !isZip( frm.zip.value ) ){
        alert ("Please enter a valid zip code.")
        frm.zip.focus()
        return false    
    } else if (ValidateAge(18, frm.year.value, frm.month.value, frm.day.value) == false) {
        alert ("Sorry, you must be at least 18 years of age to use this function of the website.");
        setCookie('over-18', 'no');
        return false
    }
	frm.gender.value = GetRadioValue(frm.gender);
	
	return true;
    
}

//init the form
function init(frm){
	frm.reset();
	setCookie('over-18', 'yes');
}


function forgotPassword(){
    var frm = document.loginForm;
	var els = frm.elements;
	var http_request;
  	for (var i = 0; i < els.length; i++) if (els[i].type == 'text') els[i].value = els[i].value.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
  	
	var btnForgotPassword = document.getElementById('btnForgotPassword').href = "#";
	if ( frm.user.value == "" ){
		document.getElementById('btnForgotPassword').href = "javascript: forgotPassword();";  
    	alert("Please enter your e-mail address.");
        frm.user.focus();
       
    }else if ( !isEmail(frm.user.value) ){
    	document.getElementById('btnForgotPassword').href = "javascript: forgotPassword();";  
    	alert("Invalid e-mail address.");
        frm.user.focus();
    }else{
         	
		http_request = getXMLHTTP_login();
		
 		http_request.onreadystatechange = function(){
            if (http_request.readyState == 4) {
				if (http_request.status == 200){
					if ( http_request.responseText == 'TRUE' ){
						document.getElementById('confirmation-message').innerHTML =  'Your new password has been sent to ' + frm.user.value + ', it should arrive shortly.';
								
						openModalDiv("confirmation-forgot-pass-ok", -200);
						
					}else{
						
						openModalDiv("confirmation-forgot-pass-no", -200);
						
					}
					document.getElementById('btnForgotPassword').href = "javascript: forgotPassword();";
				}
				else{
				   document.location.href = "/error.jsp";
				}
			}
        };
       
       http_request.open('POST','/login.do?p=forgotPassword', true);
       http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
       
       var user = 'user='+frm.user.value;

       http_request.send(user);
 			
    }
	
}

function getXMLHTTP_login(){
  try{
   obj = new XMLHttpRequest(); //for FireFox
  }catch(e){
   obj = new ActiveXObject("Microsoft.XMLHTTP"); //for IE
  }
  
  return obj;
}


