var myage = 17; //TODO: add the myage validation 
var resendattempts = 1;
var borderColor = "535353"; 
var captchaDir = "_includes/captcha";
var url = captchaDir + "/captcha.php";
var formId = "verify";
var items = Array("pencil", "scissors", "clock", "heart", "note");
var validationAttempts = 0; 

function trim(value) {
    var temp = value;
    var obj = /^(\s*)([\W\w]*)(\b\s*$)/;
    if (obj.test(temp)) { 
        temp = temp.replace(obj, '$2'); 
    }
    var obj = / +/g;
    temp = temp.replace(obj, " ");
    if (temp == " ") { 
        temp = ""; 
    }
    return temp;
}

$(function() {
	$("#username").bind("change keyup",function() { if($("#username").val().length >= 5 && $("#username").val() != "Username") { $("#checkid").show(); } else { $("#checkid").hide(); } });
    //$("#email").bind("change keyup",function() { if($("#email").val().length >= 5 && $("#email").val() != "Email") { $("#checkemailaddress").show(); } else { $("#checkemailaddress").hide(); } });    
	$("#bttn_back").click(function() {
		$('.verify2').fadeOut("fast",function(){$('.verify1').show(); $("div.error_input span").empty();});
        Recaptcha.reload();
		return false;
	});
    $("#bttn_backConfirm").click(function() {
        $("#ChangeEmail").hide();    
        $("#Response-Confirm").fadeIn("slow");
        return false;
    });
    $("#bttn_backCode").click(function() {
        $("#ActivatePhone3").hide();
        $("#ActivatePhone1").fadeIn("slow"); 
        return false;
    });         
	$("#bttn_accept").click(function() {
        $("#bttn_accept").attr("disabled", "disabled");
        var fname = trim($("#fname").val());
        var lname = trim($("#lname").val());    
        $("#fname").val(fname);
        $("#lname").val(lname);              
        var result = false;
		var validatederrors = signup.validateform();
		if(validatederrors > 0 || myage < 13) {
            $("#bttn_accept").removeAttr("disabled");  
			//result is already false
		} else {
			$('#Loading').show();
            $.ajax({
                type: "POST",
                url: "signup.php",
                data: "action=validatepersonalinfo&email="+$("#email").val()+"&username="+$("#username").val(),
                dataType: "json",
                success: function(results) {
                    if(!results.email.valid) {
                        $("#email").css({ border: "1px solid red" });
                        $("#emailerror span").empty();                         
                        $("#emailerror span").html(results.email.message);
                        $("#emailerror").show();
                        /*$("#availableemailaddress").empty().append(results.email.message).css({ color: "red" }).show();
                        $("#email").hide();
                        $("#status_emailaddress").hide();
                        $("#checkemailaddress").hide();
                        $("#changeemailaddress").show();*/                  
                    } else { 
                        $("#emailerror span").empty();
                        /*$("#email").hide();
                        $("#checkemailaddress").hide();
                        $("#availableemailaddress").empty().append($("#email").val()+" is available!").show().css({ color: "#dce602" });
                        $("#changeemailaddress").show(); */                    
                    }
                    if(!results.username.valid) {
                        //$("#availableid").empty().append($("#username").val()+" is not available!").show().css({ color: "red" });
                        $("#availableid").empty().append(results.username.message).css({ color: "red" }).show();
                        $("#username").hide();
                        $("#status_username").hide();
                        $("#checkid").hide();
                        $("#changeid").show();
                    } else {
                        $("#username").hide();
                        $("#checkid").hide();
                        $("#availableid").empty().append($("#username").val()+" is available!").show().css({ color: "#dce602" });
                        $("#changeid").show();
                    }
                    if(results.email.valid && results.username.valid && myage >= 13) {
                        result = true;  
                        $('.verify1').fadeOut("fast",function(){$('.verify2').show();});                        
                    }
                    $("#bttn_accept").removeAttr("disabled");
                    $('#Loading').hide();
                },
                error: function() { 
                    $('#Loading').hide();
                    $("#bttn_accept").removeAttr("disabled");
                    alert("We have a problem creating your account. Please try it again.");                 
                }
            });
		}
		return result;
	});
	$("#verify").submit(function() {
		return false;
	});
	$("#bttn_submit").click(function() {
        $("#generalerror span").html('');
        $("#generalerror").hide();     
        $("#bttn_submit").attr("disabled", "disabled");
        $("#bttn_back").attr("disabled", "disabled");
		//$(("#Loading")).fadeIn("slow");
		$.ajax({
			type: "POST",
			url: "signup.php",
			data: "action=validatecaptcha&recaptcha_challenge_field="+$("#recaptcha_challenge_field").val()+"&recaptcha_response_field="+$("#recaptcha_response_field").val(),
			dataType: "json",
			success: function(results) {
                if(results.captcha.valid) {
                    $(("#Loading")).show();
					$.ajax({
						type: "POST",
						url: "signup.php",
						data: "action=signup&firstname="+$("#fname").val()+"&lastname="+$("#lname").val()+"&email="+$("#email").val()+"&username="+$("#username").val()+"&password="+$("#password").val()+"&birthdate="+$("#month").val()+"-"+$("#day").val()+"-"+$("#year").val()+"&gender="+$("#gender").val()+"&country="+$("#country").val()+"&postalcode="+$("#postalcode").val()+"&inviteCode="+$("#inviteCode").val(),
						dataType: "json",
						success: function(results) {
							$("#captcha").hide();
							$("#Signup-Form").hide();
							if(results.responsecode == 1) {
								$(("#Loading")).hide();
								$("#Response-Confirm").fadeIn("slow");
								$("#emailaddress").append($("#email").val());
							} else {
								$(("#Loading")).fadeOut("Slow");
                                $("#bttn_submit").removeAttr("disabled");
                                $("#bttn_back").removeAttr("disabled");
								$("#Response-Error").show();                              
							}
						},
						error: function() { 
                            $(("#Loading")).fadeOut("slow");
                            $("#bttn_submit").removeAttr("disabled");
                            $("#bttn_back").removeAttr("disabled");                             
                            alert("We have a problem creating your account. Please try it again.");
                        }
					});
				} else {       
                    $("#generalerror span").html(results.captcha.message);
                    $("#generalerror").show();                
					Recaptcha.reload(); 
					//$(("#Loading")).fadeOut("slow");
                    $("#bttn_submit").removeAttr("disabled");
                    $("#bttn_back").removeAttr("disabled");                     
				}
			},
			error: function() { 
                //$(("#Loading")).fadeOut("slow");
                $("#bttn_submit").removeAttr("disabled");
                $("#bttn_back").removeAttr("disabled");
                alert("We have a problem creating your account. Please try it again.");                 
            }
		});
		return false;
	});
	
	$("#bttn_verify").click(function() {
		$(("#Loading")).fadeIn("slow");
		/*$.ajax({
			type: "POST",
			url: "signupforaccount.php",
			data: "action=signup&name="+$("#fname").val()+" "+$("#lname").val()+"&email="+$("#email").val()+"&username="+$("#username").val()+"&password="+$("#password").val()+"&birthdate="+$("#month").val()+"-"+$("#day").val()+"-"+$("#year").val()+"&gender="+$("#gender").val()+"&country="+$("#country").val()+"&postalcode="+$("#postalcode").val(),
			dataType: "json",
			success: function(results) {
				$("#captcha").hide();
				if(results.responsecode == 1) {
					$(("#Loading")).hide();
					$("#Response-Confirm").fadeIn("slow");
					$("#emailaddress").append($("#email").val());
				} else {
					$(("#Loading")).fadeOut("Slow");
					$("#Response-Error").show();
				}
			},
			error: function() { $(("#Loading")).fadeOut("slow"); alert("error");}
		});*/
		$.ajax({
			type: "POST",
			url: "signup.php",
			data: "action=signup&firstname="+$("#fname").val()+"&lastname="+$("#lname").val()+"&email="+$("#email").val()+"&username="+$("#username").val()+"&password="+$("#password").val()+"&birthdate="+$("#month").val()+"-"+$("#day").val()+"-"+$("#year").val()+"&gender="+$("#gender").val()+"&country="+$("#country").val()+"&postalcode="+$("#postalcode").val(),
			dataType: "json",
			success: function(results) {
				$("#captcha").hide();
				if(results.responsecode == 1) {
					$(("#Loading")).hide();
					$("#Response-Confirm").fadeIn("slow");
					$("#emailaddress").append($("#email").val());
				} else {
					$(("#Loading")).fadeOut("Slow");
					$("#Response-Error").show();
				}
			},
			error: function() { $(("#Loading")).fadeOut("slow"); alert("error");}
		});
	});
    
	$("#password").bind("change keyup",function() {
		if($("#username").val() == $("#password").val()) {
			$("#password").css({ border: "1px solid red" });
			$("#passworderror span").html("Your username and password cannot be the same.");
			$("#passworderror").show();
		} else {
			$("#password").css({ border: "1px solid #484747" });
			$("#passworderror span").html("");
			$("#passworderror").hide();
		}
	});
	
	$("#checkid").click(function() {
		if($("#username").val() != "Username") {
            if($("#username").val().match(/(^\-|^\_|^\.|\-$|\_$|\.$|\-{2,}|\_{2,}|\.{2,}|\_\-|\-\_|\.\-|\-\.|\.\_|\_\.)/)) { 
                $("#username").css({ border: "1px solid red" }); 
                $("#usernameerror span").html("Please enter a valid username.");
                $("#usernameerror").show(); 
            } else {
			    $("#checkid").hide();
                $("#usernameerror span").html('');
                $("#usernameerror").hide();              
			    $("#status_username").show().empty().append("<img src=\"_images/ajax-loader-verify.gif\" style=\"width:16px;height:16px\"> Checking...");
			    $.ajax({
				    type: "POST",
				    url: "signup.php",
				    data: "action=validatepersonalinfo&username="+$("#username").val(),
				    dataType: "json",
				    success: function(results) {
					    if(results.username.valid==1) {
						    /*$("#availableid").empty().append(results.username.message).css({ color: "#dce602" }).show();
						    $("#status_username").hide();
						    $("#username").hide();
						    $("#checkid").hide();
						    $("#changeid").show();*/
                            $("#generalerror span").html('');
                            $("#generalerror").hide();                            
						    $("#status_username").hide();
						    $("#username").hide();
						    $("#checkid").hide();
						    $("#availableid").empty().append($("#username").val()+" is available!").show().css({ color: "#dce602" });
						    $("#changeid").show();
					    } else {
						    $("#availableid").empty().append(results.username.message).css({ color: "red" }).show();
						    $("#status_username").hide();
						    $("#username").hide();
						    $("#checkid").hide();
						    $("#changeid").show();
					    }
				    },
				    error: function() { $(("#Loading")).fadeOut("slow"); }
			    });
            }
		} 
	});
	
	$("#changeid").click(function() {
		$("#username").show();
		$("#checkid").show();
		$("#changeid").hide();
		$("#availableid").hide();
	});
	
    $("#checkemailaddress").click(function() {
        if($("#email").val() != "email") {
            $("#checkemailaddress").hide();
            $("#status_emailaddress").show().empty().append("<img src=\"_images/ajax-loader-verify.gif\" style=\"width:16px;height:16px\"> Checking...");
            $.ajax({
                type: "POST",
                url: "signup.php",
                data: "action=validate&email="+$("#email").val(),
                dataType: "json",
                success: function(results) {
                    if(results.email.valid==1) {
                        $("#status_emailaddress").hide();
                        $("#email").hide();
                        $("#checkemailaddress").hide();
                        $("#availableemailaddress").empty().append($("#email").val()+" is available!").show().css({ color: "#dce602" });
                        $("#changeemailaddress").show();
                    } else {
                        $("#availableemailaddress").empty().append(results.email.message).css({ color: "red" }).show();
                        $("#status_emailaddress").hide();
                        $("#email").hide();
                        $("#checkemailaddress").hide();
                        $("#changeemailaddress").show();
                    }
                },
                error: function() { $(("#Loading")).fadeOut("slow"); }
            });
        } 
    });
    
    $("#changeemailaddress").click(function() {
        $("#email").show();
        $("#checkemailaddress").show();
        $("#changeemailaddress").hide();
        $("#availableemailaddress").hide();
    });
        
	$(".linkResend").click(function() {
		$(".linkResend").empty().append("<img src=\"_images/ajax-loader-verify.gif\" style=\"width:16px;height:16px\" align=\"middle\"> resending...");
		if(resendattempts <= 3) {
			$.ajax({
				type: "POST", url: "signup.php", data: "action=resendconfirm&username="+$("#username").val()+"&password="+$("#password").val(), dataType: "json",
				success: function(results) {
					if(results.result != false) {
						$("#Response-Confirm").hide();
                        $("#emailaddressresent").empty();
						$("#emailaddressresent").append($("#email").val());
						$("#Response-ResendConfirm").fadeIn("slow");
					} else {
						$(".linkResend").empty().append("Resend");
						//$(("#Loading")).hide();
						//$("#SupportInformation").fadeIn("slow");
					}
				},
				error: function() { $(("#Loading")).fadeOut("slow"); alert("error");}
			});
			resendattempts++;
		} else {
			$("#Response-Confirm").hide();
			$("#SupportInformation").fadeIn("slow");
		}
	});

	$(".linkNewEmail").click(function() {
		$("#Response-Confirm").hide();
		$("#Response-ResendConfirm").hide();
		$("#ChangeEmail").fadeIn("slow");
	});

	$(".linkRetry").click(function() {
		$("#Response-Error").hide();
		$("#Signup-Form").fadeIn("slow");
		$("#verify").reset();
	});
            
	$("#changeid").click(function() {
		$("#username").show();
		$("#checkid").show();
		$("#changeid").hide();
		$("#availableid").hide();
	});
	
	$("#bttn_updatenewemail").click(function() {
        var validatederrors = signup.validateemailform();
        if(validatederrors == 0) {        
			$(("#Loading")).fadeIn("slow");
			$.ajax({
				type: "POST",
				url: "signup.php",
				data: "action=validatepersonalinfo&email="+$("#newemail").val(),
				dataType: "json",
				success: function(results) {
					if(!results.email.valid) {
						$("#newemail").css({ border: "1px solid red" });
                        $("#newemailerror span").empty();                         
                        $("#newemailerror span").html("We're sorry but we only allow one account<br>per email address. Please use another email address.");
                        $("#newemailerror").show();
                        $(("#Loading")).fadeOut("slow");                                            
					} else { 
						$.ajax({
							type: "POST", url: "signup.php", data: "action=changeemail&username="+$("#username").val()+"&password="+$("#password").val()+"&newemail="+$("#newemail").val(), dataType: "json",
							success: function(results) {
								if(results.response == 1) {
									$("#ChangeEmail").hide();
                                    $("#email").val($("#newemail").val());
                                    $("#newemailerror span").html("");
                                    $("#newemailerror").hide();                           
									$("#newemail").css({ border: "1px solid #484747" });
									$(("#Loading")).hide();                                    
									$("#Response-Confirm").fadeIn("slow");
									$("#emailaddress").empty().append($("#newemail").val());
                                    $(".linkResend").empty().append("Resend");
								} else {
									$(("#Loading")).fadeOut("slow");                              
								}
							},
							error: function() { 
                                $(("#Loading")).fadeOut("slow");                                 
                                alert("Can't update your email address. Please try again.");
                            }
						});
					}
				},
				error: function() { 
                    $(("#Loading")).fadeOut("slow");
                    $("#ChangeEmail").show();
                }
			});
		}
	});
    
    $("#skip1").click(function() {
        $.ajax({
            type: "POST",
            url: "signup.php",
            data: "action=sendwelcomeemail&useremail="+$("#userEmail").val()+"&activatedphoneemail=false",
            dataType: "json",
            success: function(results) {
                if(results.response == 1) {
                    window.location = 'thankyou.php?userEmail='+$("#userEmail").val();
                } else {
                    alert("Can't process your request. Please try again.");                    
                }
            },
            error: function() { 
                alert("Can't process your request. Please try again.");
            }
        });
    });
      
    $("#skip2").click(function() {
        $.ajax({
            type: "POST",
            url: "signup.php",
            data: "action=sendwelcomeemail&useremail="+$("#userEmail").val()+"&activatedphoneemail=false",
            dataType: "json",
            success: function(results) {
                if(results.response == 1) {
                    window.location = 'thankyou.php?userEmail='+$("#userEmail").val();
                } else {
                    alert("Can't process your request. Please try again.");                    
                }
            },
            error: function() { 
                alert("Can't process your request. Please try again.");
            }
        });
    });
      
    $("#sendCode").click(function() { 
        $("#ActivatePhone1").hide();
        $("#ActivatePhone2").fadeIn("slow");
        $.ajax({
            type: "POST",
            url: "signup.php",
            data: "action=sendcode&useremail="+$("#userEmail").val()+"&phonenumber="+jQuery.trim($("#cc_activate").val())+jQuery.trim($("#p_activate").val()),
            dataType: "json",
            success: function(results) {
                if(results.result == 1) {
                    $("#ActivatePhone2").hide();
                    $("#ActivatePhone3").fadeIn("slow");
                } else {
                    alert(results.message);
                    $("#ActivatePhone2").hide();
                    $("#ActivatePhone1").fadeIn("slow");                    
                }
            },
            error: function() { 
                alert("Can't send the code to your phone. Please try again.");
                $("#ActivatePhone2").hide();
                $("#ActivatePhone1").fadeIn("slow");                 
            }
        });            
    }); 

    $(".linkRetrySms").click(function() {
        $(("#Loading")).fadeIn("slow");
        $.ajax({
            type: "POST",
            url: "signup.php",
            data: "action=sendcode&useremail="+$("#userEmail").val()+"&phonenumber="+jQuery.trim($("#cc_activate").val())+jQuery.trim($("#p_activate").val()),
            dataType: "json",
            success: function(results) {
                if(results.result == 1) {
                    $(("#Loading")).fadeOut("slow");
                    alert("The code has been resent to your phone.");                    
                } else {
                    $(("#Loading")).fadeOut("slow");
                    alert("Can't send the code to your phone. Please try again.");
                }
            },
            error: function() {
                $(("#Loading")).fadeOut("slow"); 
                 alert("Can't send the code to your phone. Please try again.");
            }
        });     
    });
         
    $("#validateCode").click(function() {
        var validatederrors = signup.validatecodeform();
        if (validationAttempts == 2) {
            alert("You have exceeded the allowed number of validation attempts.");
            window.location = 'thankyou.php?userEmail='+$("#userEmail").val();
        }        
        if(validatederrors > 0) {
            return false;
        } else { 
            $(("#Loading")).fadeIn("slow");
            $.ajax({
                type: "POST",
                url: "signup.php",
                data: "action=validatecode&useremail="+$("#userEmail").val()+"&code="+jQuery.trim($("#smscode").val()),
                dataType: "json",
                success: function(results) {
                    if(results.result == 1) { 
                        $.ajax({
                            type: "POST",
                            url: "signup.php",
                            data: "action=sendwelcomeemail&useremail="+$("#userEmail").val()+"&activatedphoneemail=true",
                            dataType: "json",
                            success: function(results) {
                                if(results.response == 1) {
                                    alert("Your VoxOx Phone has been activated."); 
                                    window.location = 'thankyou.php?userEmail='+$("#userEmail").val(); 
                                } else {
                                    alert("Can't process your request. Please try again.");                    
                                }
                            },
                            error: function() { 
                                alert("Can't process your request. Please try again.");
                            }
                        });                    
                    } else {
                        validationAttempts++;
                        $(("#Loading")).fadeOut("slow");
                        alert("Can't activate your Voxox Phone. Please try again.");
                    }
                },
                error: function() { 
                    $(("#Loading")).fadeOut("slow");
                    alert("Can't activate your Voxox Phone. Please try again.");
                }
            });
        }
    });
                
	signup.init();
});
