var nextSSNUsed = new Array(false, false, false);

function nextSSNField(fieldNumber) {
    var current = document.getElementById('ssn' + fieldNumber);
    var next = document.getElementById('ssn' + (fieldNumber+1));
    
    if (fieldNumber == 3) {
        if (current.value.length >= 4) {
            nextSSNUsed[fieldNumber-1] = true;
            return void(0);
        }
    }
    
    if (fieldNumber == 1) {
        if (current.value.length >= 3) {
            nextSSNUsed[fieldNumber-1] = true;
            next.focus();
        }
    }
    
    if (fieldNumber == 2) {
        if (current.value.length >= 2) {
            nextSSNUsed[fieldNumber-1] = true;
            next.focus();
        }
    }
}

// returns true if the key pressed was a number, dash, delete, or backspace
function onlyNumbersAndDashes(e)
{
    var keyCode;
    var c;
    
    if (window.event) { // Internet Explorer
        keyCode = e.keyCode;
    }
    else if (e.which) { // Everyone Else
        keyCode = e.which;
    }
    c = String.fromCharCode(keyCode);
    
    if (isNaN(c) && 
        keyCode != 109 && keyCode != 189 && // dash key
        (keyCode < 96 || keyCode > 105) && // number pad
        (keyCode < 37 || keyCode > 40) && // arrow keys
        keyCode != 9 && keyCode != 46 && keyCode != 8) // tab, backspace, delete
    { 
        return false;
    }
    return true;
}

function onlyEdit(e) {
    var keyCode;
    var c;
    
    if (window.event) { // Internet Explorer
        keyCode = e.keyCode;
    }
    else if (e.which) { // Everyone Else
        keyCode = e.which;
    }
    c = String.fromCharCode(keyCode);
    
    if (keyCode != 9 && keyCode != 46 && keyCode != 8 && // tab, backspace, delete
        (keyCode < 37 || keyCode > 40))  // arrow keys
    { 
        return false;
    }
    return true;
}

function ssnRightSize(fieldName, size) {
    var length = document.getElementById(fieldName).value.length;
    if (length < size) {
        return true;
    }
    return false;
}

function checkSSNKeys(e, fieldName)
{
    switch(fieldName)
    {
        case 'ssn1':
            if (onlyNumbersAndDashes(e)) {
                if (ssnRightSize(fieldName, 3)) {
                    setTimeout('nextSSNField(1)', 1);
                    return true;
                } else {
                    return onlyEdit(e);
                }
            }
            break;
        case 'ssn2':
            if (onlyNumbersAndDashes(e)) {
                if (ssnRightSize(fieldName, 2)) {
                    setTimeout('nextSSNField(2)', 1);
                    return true;
                } else {
                    return onlyEdit(e);
                }
            }
            break;
        case 'ssn3':
            if (onlyNumbersAndDashes(e)) {
                if (ssnRightSize(fieldName, 4)) {
                    setTimeout('nextSSNField(3)', 1);
                    return true;
                } else {
                    return onlyEdit(e);
                }
            }
            break;
    }
    return false;
}

function checkMin(minimum, formname, fieldName, fieldDesc) {
    var error = '';
    var current = eval('document.' + formname + '.' + fieldName + '.value');
    if (current != '') {
        if (parseInt(current) < minimum) {
            error += '- ' + fieldDesc + ' must be greater than ' + minimum + '\n';
        }
    }
    return error;
}

function formCheck(objForm)
{
	emailRegEx = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;

	document.getElementById("B1").disabled = true;
	
	if(objForm.fname.value == "")
	{
		alert("Please enter first name.");
		objForm.fname.focus();
	}
	else if(objForm.lname.value == "")
	{
		alert("Please enter last name.");
		objForm.lname.focus();
	}
	else if(objForm.address1.value == "")
	{
		alert("Please enter address.");
		objForm.address1.focus();
	}
	else if(objForm.city.value == "")
	{
		alert("Please enter city.");
		objForm.city.focus();
	}
	else if(objForm.state.value == "")
	{
		alert("Please enter state.");
		objForm.state.focus();
	}
	else if(objForm.zip.value == "")
	{
		alert("Please enter zip.");
		objForm.zip.focus();
	}
	else if(objForm.homephone.value == "")
	{
		alert("Please enter home phone no..");
		objForm.homephone.focus();
	}
	else if(objForm.mobilePhone.value == "")
	{
		alert("Please enter mobile phone.");
		objForm.mobilePhone.focus();
	}
	else if(objForm.email.value == "")
	{
		alert("Please enter email address.");
		objForm.email.focus();
	}
	else if(!emailRegEx.test(objForm.email.value))
	{
		alert("Please enter a valid email address.");
		objForm.email.focus();
	}
	else if(objForm.yearsAtHomeAddress.value == "0" && objForm.monthsAtHomeAddress.value == "0")
	{
		alert("Please enter residential period");
		objForm.yearsAtHomeAddress.focus();
	}
	else if(objForm.monthlypayment.value == "")
	{
		alert("Please enter monthly payment.");
		objForm.monthlypayment.focus();
	}
	else if(objForm.bmonth.value == "")
	{
		alert("Please enter month.");
		objForm.bmonth.focus();
	}
	else if(objForm.bday.value == "")
	{
		alert("Please enter day.");
		objForm.bday.focus();
	}
	else if(objForm.byear.value == "")
	{
		alert("Please enter year.");
		objForm.byear.focus();
	}
	else if(objForm.ssn1.value == "")
	{
		alert("Please enter Social Security Number.");
		objForm.ssn1.focus();
	}
	else if(objForm.ssn2.value == "")
	{
		alert("Please enter Social Security Number.");
		objForm.ssn2.focus();
	}
	else if(objForm.ssn3.value == "")
	{
		alert("Please enter Social Security Number.");
		objForm.ssn3.focus();
	}
	else if(objForm.employername.value == "")
	{
		alert("Please enter employer name.");
		objForm.employername.focus();
	}
	else if(objForm.yourjobtitle.value == "")
	{
		alert("Please enter your job title.");
		objForm.yourjobtitle.focus();
	}
	else if(objForm.yearsWithEmployer.value == "0" && objForm.monthsWithEmployer.value == "0")
	{
		alert("Please enter your experience");
		objForm.yearsWithEmployer.focus();
	}
	else if(objForm.monthlyincome.value == "")
	{
		alert("Please enter monthly income.");
		objForm.monthlyincome.focus();
	}
	else if(objForm.workphone.value == "")
	{
		alert("Please enter work phone number.");
		objForm.workphone.focus();
	}
	else
	{
		objForm.submit();
	}
	document.getElementById("B1").disabled = false;
}