// JavaScript Document

$(document).ready(function() {

    // Global Reference Variables

    var form = $("#SignUpForm");

    var fname = $("#fname");
    var lname = $("#lname");
    var company = $("#company");
    var phone = $("#phone");
    var email = $("#email");
    var firm = $("#firm");
    var user = $("#username");
    var pass = $("#password");
    var pass2 = $("#password2");
    var agreed = $("#AgreedPolicy");

    var fname_status = $("#fname_status");
    var lname_status = $("#lname_status");
    var email_status = $("#email_status");
    var company_status = $("#company_status");
    var phone_status = $("#phone_status");
    var firm_status = $("#firm_status");
    var user_status = $("#user_status");
    var pass_status = $("#pass_status");
    var pass2_status = $("#pass2_status");

    var suggestUser = "";
    var suggestFirm = "";

    fname.blur(ValidateFirstName);
    lname.blur(ValidateName);
    company.blur(ValidateCompany);
    //phone.blur(ValidatePhone);
    user.blur(ValidateUser);
    firm.blur(ValidateFirm);
    pass.blur(ValidatePass);
    pass2.blur(ValidatePass2);
    email.blur(ValidateEmail);

    $("input[type=hidden]").hide();

    function ValidateFirstName() {

        if (fname.val().length > 0) {
            fname.removeClass("BadField");
            fname_status.fadeOut();
            fname_status.text("");
            return true;
        }
        else {
            fname_status.hide();
            fname.addClass("BadField");
            fname_status.text("Please enter your first name.");
            fname_status.fadeIn();
            return false;
        }

    }

    function ValidateName() {



        if (lname.val().length > 0) {

            lname.removeClass("BadField");

            lname_status.fadeOut();

            lname_status.text("");

            if (user.val().length == 0) {

                suggestUser = fname.val() + " " + lname.val();

                suggestUser = suggestUser.toLowerCase();

                suggestUser = suggestUser.replace(" ", "");

                user.val(suggestUser);

                ValidateUser();

            }

            return true;

        }

        else {

            lname_status.hide();

            lname.addClass("BadField");

            lname_status.text("Please enter your last name.");

            lname_status.fadeIn();

            return false;

        }

    }



    function ValidateCompany() {



        if (company.val().length > 0) {

            company.removeClass("BadField");

            company_status.fadeOut();

            company_status.text("");

            if (firm.val().length == 0) {

                suggestFirm = company.val();

                suggestFirm = suggestFirm.toLowerCase();

                suggestFirm = suggestFirm.replace(" ", "");

                suggestFirm = suggestFirm.substr(0, 4);

                firm.val(suggestFirm);

            }

            return true;

        }

        else {

            company_status.hide();

            company.addClass("BadField");

            company_status.text("Please enter your company name.");

            company_status.fadeIn();

            return false;

        }





    }


    function ValidateUser() {
        if (user.val().length > 0) {
            user.removeClass("BadField");
            user_status.fadeOut();
            user_status.text("");
            return true;
        }
        else {
            user_status.hide();
            user.addClass("BadField");
            user_status.text("Please enter a username.");
            user_status.fadeIn();
            return false;
        }
    }

    function ValidateFirm() {
        if (firm.val().length < 3) {
            firm_status.hide();
            firm.addClass("BadField");
            firm_status.text("Firm ID needs at least 3 characters.");
            firm_status.fadeIn();
            return false;
        }
        else {
            firm.removeClass("BadField");
            firm_status.fadeOut();
            firm_status.text("");
            return true;
        }
    }

    function ValidatePass() {
        if (pass.val().length < 1) {
            pass_status.hide();
            pass.addClass("BadField");
            pass_status.text("Please enter a password.");
            pass_status.fadeIn();
            return false;
        }
        else {
            pass.removeClass("BadField");
            pass_status.fadeOut();
            pass_status.text("");
            return true;
        }
    }

    function ValidateCheckbox() {
        if (document.getElementById('AgreedPolicy').checked == false) {
            alert('You must agree to the Terms of Service and Privacy Policy.');
            return false;
        }
        else {
            return true;
        }
    }

    function ValidatePass2() {
        if (pass.val() != pass2.val()) {
            pass2_status.hide();
            pass2.addClass("BadField");
            pass2_status.text("Passwords do not match.");
            pass2_status.fadeIn();
            return false;
        }
        else if (pass2.val().length < 1) {
            pass2_status.hide();
            pass2.addClass("BadField");
            pass2_status.text("Please enter a password.");
            pass2_status.fadeIn();
            return false;
        }
        else {
            pass2.removeClass("BadField");
            pass2_status.fadeOut();
            pass2_status.text("");
            return true;
        }
    }

    function ValidateEmail() {
        //testing regular expression
        var a = $("#email").val();
        var filter = /^[a-zA-Z0-9_.-]+@[a-zA-Z0-9]+[a-zA-Z0-9.-]+[a-zA-Z0-9]+.[a-z]{2,4}$/;
        //if it's valid email
        if (filter.test(a)) {
            email.removeClass("BadField");
            email_status.fadeOut();
            email_status.text("");
            return true;
        }
        //if it's NOT valid
        else {
            email_status.hide();
            email.addClass("BadField");
            email_status.text("Please enter a valid email address.");
            email_status.fadeIn();
            return false;
        }
    }


    $('input[type="radio"]').click(UpdateFeatures);
    $('input[type="radio"]').keypress(UpdateFeatures);

    function UpdateFeatures() {
        switch ($(this).val()) {

            case '2':
                $('#userval').text('Unlimited');
                $('#clientval').text('Unlimited');
                $('#projval').text('Unlimited');
                break;

            case '1':
                $('#userval').text('2');
                $('#clientval').text('20');
                $('#projval').text('30');
                break;

            case '4':
                $('#userval').text('1');
                $('#clientval').text('3');
                $('#projval').text('5');
                break;

        }

    }



    // FORM FIELD SELECTION FUNCTIONS

    $('input[type="text"]').focus(function() {
        $(this).removeClass().addClass("ActiveField");
    });
    $('input[type="text"]').blur(function() {
        $(this).removeClass("ActiveField");
    });
    $('input[type="password"]').focus(function() {
        $(this).removeClass().addClass("ActiveField");
    });
    $('input[type="password"]').blur(function() {
        $(this).removeClass("ActiveField");
    });


    form.submit(function() {
        if (ValidateFirstName() & ValidateName() & ValidateCompany() & ValidateUser() & ValidatePass() & ValidatePass2() & ValidateEmail() & ValidateFirm() & ValidateCheckbox()) {
            document.getElementById("trackingInfo").value = B4TuserAnalytics;
            return true;
        }
        else return false
    });



    checkCookie();




});




	function setCookie(cName) {
		var date = new Date();
		var landing = document.URL;
		var referral = document.referrer;
		var exDate = new Date();
		exDate.setDate(exDate.getDate() + 30);
		document.cookie=cName+"="+escape("Date: " + date + "\nReferral: " + referral + "\nLanding: " + landing)+";expires="+exDate.toGMTString();
	}
	
	function getCookie(cName){
		if (document.cookie.length>0){
			cStart=document.cookie.indexOf(cName + "=");
			if (cStart != -1) {
				cStart=cStart + cName.length+1;
				cEnd = document.cookie.indexOf(";",cStart);
				if (cEnd==-1) cEnd = document.cookie.length;
				return unescape(document.cookie.substring(cStart,cEnd));
			}
		}
		return "";
}

var B4TuserAnalytics=""
	
	function checkCookie(){
	    B4TuserAnalytics = getCookie('b4tAnalytics');
	    if (B4TuserAnalytics != null && B4TuserAnalytics != "") {
	        //alert('Welcome back.\n' + B4TuserAnalytics);
	        B4TuserAnalytics = getCookie('b4tAnalytics');
		} else {
		    setCookie('b4tAnalytics', B4TuserAnalytics);
			B4TuserAnalytics = getCookie('b4tAnalytics');
			//alert("This is your first visit.\n"+userAnalytics);
		}
	}
	
	//alert("Date: " + date + "\nReferral: " + referral + "\nLanding: " + landing);

	

