﻿function makeStateOptions()
{
    var tmpStateList;
    var tmpReturnString;
    var tmpStateArray;
    var i;
    var selectFlag;

    var tmpStateList = "AL|AK|AZ|AR|CA|CO|CT|DC|DE|FL|GA|HI|ID|IL|IN|IA|KS|KY|LA|ME|MD|MA|MI|MN|MS|MO|MT|NE|NV|NH|NJ|NM|NY|NC|ND|OH|OK|OR|PA|RI|SC|SD|TN|TX|UT|VT|VA|WA|WV|WI|WY"
    tmpReturnString = tmpReturnString + "<option value=''>&#160;</option>"
    tmpStateArray = tmpStateList.split("|");
    tmpReturnString = '<select id="state" name="state">'

    for (i = 0; i < tmpStateArray.length; i++)
    {
        tmpReturnString = tmpReturnString + "<option value='" + tmpStateArray[i] + "'>" + tmpStateArray[i] + "</option>"
    }
    tmpReturnString = tmpReturnString + "</select>"
    document.getElementById("stateselector").innerHTML = tmpReturnString;

}

//dim userOrigin
//userOrigin = request.QueryString("userorigin")


var http_request = false;


function checkForAccount() {

    var uid = document.getElementById("email").value;
    var pwd = document.getElementById("pass").value;
    var pwdhint = escape(document.getElementById("passhint").value);

    var pwdanswer = document.getElementById("passanswer").value;
    var fname = document.getElementById("fname").value;
    var lname = document.getElementById("lname").value;
    var hposition = document.getElementById("hposition").value;
    var mm = document.getElementById("dob_mm").value;
    var dd = document.getElementById("dob_dd").value;
    var yy = document.getElementById("dob_yyyy").value;
    var dob = mm + "/" + dd + "/" + yy;

    var gender = document.getElementById("gender").value;
    var marryStatus = document.getElementById("marrystatus").value;
    var addr1 = document.getElementById("addr1").value;
    var addr2 = document.getElementById("addr2").value;
    var city = document.getElementById("city").value;
    var st = document.getElementById("state").value;
    var zip = document.getElementById("zip").value;
    var userOrigin = document.getElementById("userorigin").value;
    var phone = ""

    //document.getElementById("homephone_ac").value + "-";
    //phone += document.getElementById("homephone_prefix").value + "-";
    //phone += document.getElementById("homephone_number").value;

    document.getElementById('submitmessage').className = "visible";
    document.getElementById('submitmessage').innerHTML = "One Moment Please...";

    var tmpFields = "uid=" + uid + "&pwd=" + pwd + "&pwdhint=" + pwdhint + "&pwdanswer=" + pwdanswer + "&fname=" + fname;
    tmpFields += "&lname=" + lname + "&hposition=" + hposition + "&dob=" + dob + "&gender=" + gender;
    tmpFields += "&marrystatus=" + marryStatus + "&addr1=" + addr1 + "&addr2=" + addr2 + "&city=" + city + "&st=" + st;
    tmpFields += "&zip=" + zip + "&phone=" + phone + "&origin=" + userOrigin;
    //alert(tmpFields)

    createAccount(tmpFields);
}


function createAccount(fields) {

    if (http_request) {
        //http_request.onreadystatechange = '';
        http_request.abort();
        http_request = false;
    }

    var fullurl = "/includes/f1ProcessNewAccount.aspx?" + fields;

    if (window.XMLHttpRequest) { // Mozilla [11], Safari, IE 7
        http_request = new XMLHttpRequest();
    } else if (window.ActiveXObject) { // IE 6-
        http_request = new ActiveXObject("Microsoft.XMLHTTP");
    }

    http_request.onreadystatechange = alertContentsNewAccount;
    http_request.open("GET", fullurl, true);
    http_request.send(null);

}

function alertContentsNewAccount() {

    var xml;
    var txt;
    if (http_request.readyState == 4) {
        //alert(http_request.responseText);
        if (http_request.status == 200) {
            // reassign data
            xml = http_request.responseXML;
            txt = http_request.responseText;

            //alert("responseText = " + txt)
            switch (txt) {
                case "accountExist":
                    if (confirm("An account exist with this information already exist. Would you like us to send the password to the email address we have on file?")) {
                        alert("send the password");
                    }
                    break;

                case "uidInUse":
                    document.getElementById("emailerr").innerHTML = "The UserID you have chosen in already in use. <br />Please select a different UserID"
                    document.getElementById("emailerr").className = "visible";
                    //alert("The UserID you have chosen in already in use. Please select a different UserID");
                    break;

                case "accountCreatedSuccessfully":
                    window.location = "/storywide.aspx?storyid=19";
                    break;

                default:
                    alert('ERROR CHECKING ACCOUNT DATABASE');
                    break;
            }
        }
        else {
            alert('There was a problem with the request.');
        }
    }
}


function trim(stringToTrim) {
    return stringToTrim.replace(/^\s+|\s+$/g, "");
}


function validate() {

    //alert("Begin Vaidation");
    document.getElementById("emailerr").className = "hidden";
    document.getElementById("pwderr").className = "hidden";
    document.getElementById("gendererr").className = "hidden";
    document.getElementById("firstnameerr").className = "hidden";
    document.getElementById("lastnameerr").className = "hidden";
    document.getElementById("doberr").className = "hidden";
    document.getElementById("addresserr").className = "hidden";
    document.getElementById("cityerr").className = "hidden";
    document.getElementById("stateerr").className = "hidden";
    document.getElementById("ziperr").className = "hidden";


    var valid = "true";
    var badEmail = "false";
    var badDOB = "false";
    var responseText = "";
    var responseField = "";

    //alert("Validating Email");
    //check email
    //alert("test1");	
    var re = /\./
    if (re.test(document.getElementById("email").value) != true || document.getElementById("email").value.length < 8) {
        badEmail = "true";
    }
    //	alert("test2");	
    var re = /@/
    if (re.test(document.getElementById("email").value) != true) {
        badEmail = "true";
    }
    //alert("test3");	
    if (badEmail == "true") {
        document.getElementById("emailerr").innerHTML = "Please enter a valid email address.";
        document.getElementById("emailerr").className = "visible";
        return false;
    }
    //----	
    //alert("Validating pwd");
    if (document.getElementById("pass").value.length < 4) {
        document.getElementById("pwderr").innerHTML = "Your password must have at least 4 characters";
        document.getElementById("pwderr").className = "visible";
        return false;

    }

    //alert("Validating pwdHinQuestion");
    if (trim(document.getElementById("passhint").value) == "") {
        document.getElementById("pwdHinterr").innerHTML = "You must select a challenge question";
        document.getElementById("pwdHinterr").className = "visible";
        return false;
    }

    //alert("Validating pwdHintAnswer");
    if (trim(document.getElementById("passanswer").value) == "") {
        document.getElementById("pwdAnswererr").innerHTML = "You must enter a password hint answer";
        document.getElementById("pwdAnswererr").className = "visible";
        return false;
    }

    //alert("Validating pwdHintAnswer");
    if (trim(document.getElementById("passanswer").value) != trim(document.getElementById("passanswer2").value)) {
        document.getElementById("pwdAnswererr").innerHTML = "Your password hint entries do not match";
        document.getElementById("pwdAnswererr").className = "visible";
        return false;
    }



    //alert("Validating Gender");
    if (document.getElementById("gender").value == "") {
        document.getElementById("gendererr").innerHTML = "Please select your gender.";
        document.getElementById("gendererr").className = "visible";
        return false;
    }

    //alert("Validating Firstname");
    if (document.getElementById("fname").value == "") {
        document.getElementById("firstnameerr").innerHTML = "Please enter your first name.";
        document.getElementById("firstnameerr").className = "visible";
        return false;
    }


    //alert("Validating lastname");	
    if (document.getElementById("lname").value == "") {
        document.getElementById("lastnameerr").innerHTML = "Please enter your last name.";
        document.getElementById("lastnameerr").className = "visible";
        return false;

    }

    //alert("Validating Household position");
    if (document.getElementById("hposition").value == "") {
        document.getElementById("hpositionerr").innerHTML = "Please select your household position.";
        document.getElementById("hpositionerr").className = "visible";
        return false;
    }

    //alert("Validating DOB");
    //Check DOB	
    var mm = document.getElementById('dob_mm').value;
    var dd = document.getElementById('dob_dd').value;
    var yy = document.getElementById('dob_yyyy').value;
    var tmpReason = "";

    if (yy.length == 2) {
        var yy = '19' + yy;
        document.getElementById('dob_yyyy').value = yy;
    }

    if (mm.length < 1 || !parseInt(mm, 10) || parseInt(mm, 10) > 12) {
        badDOB = "true"
        tmpReason = "bad month"
    }
    if (dd.length < 1 || !parseInt(dd, 10) || parseInt(dd, 10) > 31) {
        badDOB = "true"
        tmpReason = "bad day"
    }
    if (yy.length < 4 || !parseInt(yy, 10)) {
        badDOB = "true"
        tmpReason = "bad year"
    }
    if (parseInt(yy, 10) > 1994) {
        badDOB = "true"
        tmpReason = "too Young"
    }

    if (badDOB == "true") {
        document.getElementById("doberr").innerHTML = "Please enter a valid date of birth. You must be at least 13 to register. -- " + tmpReason;
        document.getElementById("doberr").className = "visible";
        return false;
    }
    //----	
    //alert("Validating address");
    if (document.getElementById("addr1").value == "") {
        document.getElementById("addresserr").innerHTML = "Please enter a valid address.";
        document.getElementById("addresserr").className = "visible";
        return false;
    }

    if (document.getElementById("city").value == "") {
        document.getElementById("cityerr").innerHTML = "Please enter a valid city.";
        document.getElementById("cityerr").className = "visible";
        return false;
    }

    //alert("Validating state");
    if (document.getElementById("state").value == "") {
        document.getElementById("stateerr").innerHTML = "Please enter a valid state.";
        document.getElementById("stateerr").className = "visible";
        return false;
    }

    //alert("Validating zip");
    if (document.getElementById("zip").value == "" || document.getElementById("zip").value.length < 5) {
        document.getElementById("ziperr").innerHTML = "Please enter a valid email zip code.";
        document.getElementById("ziperr").className = "visible";
        return false;
    }

    checkForAccount();
}

