$(document).ready(function() {
		      //handling all forms submit.
		      $("#betaform").submit(function(e){
						e.preventDefault();
						joinBetaGroup();});
		      $("#signinform").submit(function(e){
						  e.preventDefault();
						  signin(); });
		      $("#signup-form").submit(function(e){
						   e.preventDefault();
						  signup(); });
		      $("#contactform").submit(function(e){
						   e.preventDefault();
						  submitContactForm(); });

		      $("#forgotpasswordform").submit(function(e){
							  e.preventDefault();
							  forgotPassword();
							  });
		      $("#contactform").submit(function(e){
						   e.preventDefault();
						   submitContactForm();
					       });
		      $("#signinfirstentry").focus();
		      $("#name").focus();
		      $("#forgotpasswordfirstentry").focus();
		      
		      
		     });

function checkAccount(){
    if($("#account").val() == ""){
	return;
    }
    $.ajax({
	       data:{account:$("#account").val()},
	       dataType: "json",
	       type: "POST",
	       url: "/applogic/check_account",
	       success: function(data, status){
		   if(data.available){
		       $("#account").removeClass("wronginput");
		       hideError();
		   }else{
		       $("#account").removeClass("correctinput");
		       $("#account").addClass("wronginput");
		       showError("Account name you chose is not available.");
		   }
		   return;
	       }		       
	   });
}

function showCreditInfo(self){
    if($(self).val() == "0"){
	$("#paymentdiv").hide();
    }else{
	$("#paymentdiv").show();

    }
}

function isEmailValid(){    
    if(!emailCheck($("#email").val())){
	showError("The provided email does not seem to be proper");
	$("#email").addClass("wronginput");
	return false;
    }
    return true;
}

function isPhoneValid(){    
    if($("#phone").val() != "" && !phoneCheck($("#phone").val())){
	showError("The provided phone is not valid, use only numbers.");
	$("#phone").addClass("wronginput");
	return false;
    }
    return true;
}

function isPasswordValid(){    
    if ($("#password").val() != $("#retypepassword").val()){
	showError("Passwords do not match");
	$("#password").addClass("wronginput");
	$("#retypepassword").addClass("wronginput");
	return false;
    }    
    return true;
}

function signup(){
    hideError();
    var error_str="";
    $("#loading-dialog").show();
    $(".wronginput").removeClass("wronginput");
    $("#signup-form input").each(function(){
				     if($(this).val() == "" && $(this).attr("id") != "billingaddress2" && $(this).attr("type") != "checkbox" 
				       && $(this).attr("id") != "industry" && $(this).attr("id") !="discount" ){
					 error_str = "Required fields are missing.";
					 $(this).addClass("wronginput");
				     }});
    if (!isPasswordValid()){
	if(error_str != ""){
	    error_str+="<br/>";
	}
	error_str += "Passwords do not match.";
    }    
    if(!isEmailValid()){
	if(error_str != ""){
	    error_str+="<br/>";
	}
	error_str += "Email is not in a proper format";
    }
    if(!isPhoneValid()){
	if(error_str != ""){
	    error_str+="<br/>";
	}
	   error_str += "Phone is not in a proper format (only numbers)";	   
    }
    if(!userNameCheck($("#username").val())){
	if(error_str != ""){
	    error_str+="<br/>";
	}
	   error_str += "Username can only have numbers and characters";	   	
    }
    if($("#signup-form input:checked").length == 0){
	if(error_str != ""){
	    error_str+="<br/>";
	}
	error_str += "You need to agree on the terms & conditions of signup.";
    }
    if(error_str != ""){
	showError(error_str);
	return false;
    }
    var requestData = {
	userId: $("#username").val(),
	account: $("#account").val(),
	accountName: $("#company").val(),
	plan: $("#plan").val(),
	password: $("#password").val(),
	name:$("#name").val(),
	phone:$("#phone").val(),
	email:$("#email").val(),
	industry: $("#industry").val(),
	heard: $("#heard").val(),
	creditType:$("#cardtype").val(),
	creditCard:$("#creditcard").val(),
	cvc:$("#cvv").val(),
	cardHolderName:$("#cardname").val(),
	billingAddress1:$("#billingaddress1").val(),
	billingAddress2:$("#billingaddress2").val(),
	billingCity:$("#billingcity").val(),
	billingState:$("#billingstate").val(),
	billingZip:$("#billingzip").val(),
	cardHolderName:$("#cardname").val(),
	expiryMonth:$("#expmonth").val(),
	expiryYear:$("#expyear").val(),
	discount: $("#discount").val()
    };
    $.ajax(
	{
	    data: requestData,
	    dataType: "json",
	    type: "POST",
	    url: "/applogic/account_register",
	    error: function(){		 
		$("#loading-dialog").hide();
		showError("An error has occured. Please resubmit the info.");
	    },
	    success: function(data, status){
		$("#loading-dialog").hide();
		if(data.success){
		    window.location=data.url;
		}else{
		    showError(data.errorstr);
		}}});
}


function signin(){
    $(".error").hide();    
    $(".wronginput").removeClass("wronginput");
    if($("input[name=username]").val() == "" || $("input[name=account]").val() == "" || $("input[name=password]").val() == ""){
	$("#error-text").html("Required fields are missing");
	$(".error").show();
	if($("input[name=username]").val() == "") $("input[name=username]").addClass("wronginput");
	if($("input[name=account]").val() == "") $("input[name=account]").addClass("wronginput");
	if($("input[name=password]").val() == "") $("input[name=password]").addClass("wronginput");
	return false;
    }
    var requestData = {
	userId: $("input[name=username]").val(),
	account: $("input[name=account]").val(),
	redirectUrl: $("#redirecturl").val(),
	pass: $("input[name=password]").val()};
    if(requestData.redirectUrl == ".lp"){
	requestData.redirectUrl = "";
    }
    $.ajax(
	{
	    data: requestData,
	    dataType: "json",
	    type: "POST",
	    url: "/applogic/login",
	    error: function(){		 
		$("#error-text").html("An error has occured. We have been notified and will look into it.");
		$(".error").show();
	    },
	    success: function(data, status){
		if(data.success){
		    if(data.redirect != ""){
			window.location= "/"+data.redirect;
		    }else{
			window.location="/dashboard.lp";
		    }
		}else{
		    $("#error-text").html(data.errorstr);
		    $(".error").show();
		}}});
}

function forgotPassword(){
    $(".wronginput").removeClass("wronginput");
    $(".error").hide();
    $(".succes").hide();
    if($("input[name=account]").val() == ""){
	$("input[name=account]").addClass("wronginput");
    }
    if($("input[name=username]").val() == ""){
	$("input[name=username]").addClass("wronginput");
    }
    if($("input[name=username]").val() == "" || $("input[name=account]").val() == ""){
	$("#error-text").html("Required fields are missing");
	$(".error").show();
	return;
    }
    var requestData = {
	username: $("input[name=username]").val(),
	account: $("input[name=account]").val()
    };
    $.ajax(
	{
	    data: requestData,
	    dataType: "json",
	    type: "POST",
	    url: "/applogic/forgot_password",
	    error: function(data){	
		$("#error-text").html("No such username or account exist");
		$(".error").show();
	    },
	    success: function(data, status){
		if(data.success){		    
		    $(".error").hide();
		    $(".success").show();
		}else{
		    $("#error-text").html(data.errorstr);
		    $(".error").show();
		}}});
}


function joinBetaGroup(){
    $.ajax({
	       data:{email: $("input[name=email]").val()},
	       dataType: "json",
	       type: "POST",
	       url: "/public/joinbeta",
	       error: function(data){
		   $(".betaerror").show();
	       },
	       success: function(data, status){
		   if(data.response.success){
		       $("#betasuccess").show();
		       $("#betaform").hide();
		   }else{
		       $(".betaerror").show();
		   }      
	       }
	       });
}

function submitContactForm(){
    hideError();
    $(".success").hide();
    if($("input[name=contactname]").val() == "" || $("input[name=contactemail]").val() == "" ||$("textarea[name=contactmessage]").val() == ""){
	showError("All fields are required");
	return false;
    }
    if(!isEmailValid()){
	showError("Email is not in proper format.");
	return false;
    }
    var requestData = {
	name: $("input[name=contactname]").val(),
	email: $("input[name=contactemail]").val(),
	message: $("textarea[name=contactmessage]").val()
    };
    $.ajax({
	       data:requestData,
	       dataType: "json",
	       type: "POST",
	       url: "/public/contactus",
	       error: function(data){
		   showError("An error has occured. We have been notified and will look into it. In the mean time shoot us an email.");
	       },
	       success: function(data, status){
		   if(data.response.success){
		       $("input[name=contactname]").val("");
		       $("input[name=contactemail]").val("");
		       $("textarea[name=contactmessage]").val("");
		       $(",success").show();		       
		   }else{
		       showError("An error has occured. We have been notified and will look into it. In the mean time shoot us an email.");
		   }      
	       }
	       });
}

		

