var last_checkUserName = "";

function validate_checkUserName(strToCheck) {
    el_logon = document.getElementById( 'UserLogon' );
    if( el_logon.value.length >= 5 )
    {
	    if (last_checkUserName != strToCheck) {
		    document.getElementById("validate_wrapper").src = "/includes/validate_userName.php?id=" + strToCheck;
		    last_checkUserName = strToCheck;
	    }
    }
        
}
//Validation fields all of these must have a value of 1
//for the form to submit

var g_arr_validation = new Array( '0', '0','1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0');
var g_img_ok = "<img src='../images/valid_input.png' width='15' height='15' />";
var g_img_bad = "<img src='../images/invalid_input.png' width='15' height='15' />";

function validateNewUserSubmit(formID) {
    var curLitAgencyState = document.getElementById("selectLitAgent").options[document.getElementById("selectLitAgent").selectedIndex].value;
    
    for( var i = 0; i < g_arr_validation.length; i++ ) {
        if( g_arr_validation[i] == 0 ) {
            if(curLitAgencyState == 'lit_agent_false' && (i == 8 || i == 14 || i == 25 || i == 15 || i == 16 || i == 21) ) continue;
            alert("Please check all fields with a red arrow to the right of them.\nThank You.");
            return;
        }
    }
    formID.frmAction.value="New";
	formID.submit();
}
           
function validate_new_user_input(field_id, results_id) {
    var el_check = document.getElementById( field_id );
    var el_results = document.getElementById( results_id );
    var validation_index = 0;
    switch( field_id ) {
        case "UserPassword":
        {
            el_password_verify = document.getElementById( 'UserConfirmPassword' );
            el_verify_results = document.getElementById('password_verify_results' );
            if( el_check.value.length >= 6 )
            {
                el_results.innerHTML = g_img_ok;
                g_arr_validation[0] = 1;
            }else{
                el_results.innerHTML = g_img_bad;
                g_arr_validation[0] = 0;
            }
            
            if( el_password_verify.value.length >= 6 && el_password_verify.value == el_check.value )
            {
                el_verify_results.innerHTML = g_img_ok;
                g_arr_validation[1] = 1;
            }else{
                el_verify_results.innerHTML = g_img_bad;
                g_arr_validation[1] = 0;
            }
            break;
        }
        case "UserConfirmPassword":
        {
            el_password = document.getElementById( 'UserPassword' );
            if( el_check.value.length >= 6 && el_password.value == el_check.value )
            {
                el_results.innerHTML = g_img_ok;
                g_arr_validation[1] = 1;
                g_arr_validation[0] = 1;
            }else{
                el_results.innerHTML = g_img_bad;
                g_arr_validation[0] = 0;
                g_arr_validation[1] = 0;
            }
            break;
        }
        case "nonRoyaltyPublisher":
        {
            //if( el_check.selectedIndex == 0 )
            //{
            //    el_results.innerHTML = g_img_bad;
            //    g_arr_validation[2] = 0;
            //}else{
            //    el_results.innerHTML = g_img_ok;
            //    g_arr_validation[2] = 1;
            //}
            //break;
        }
        case "UserCompanyCountry":
        {
            if( el_check.selectedIndex == 0 )
            {
                el_results.innerHTML = g_img_bad;
                g_arr_validation[3] = 0;
            }else{
                el_results.innerHTML = g_img_ok;
                g_arr_validation[3] = 1;
            }
            break;
        }
        case "UserReminderQuestion":
        {
            if( el_check.selectedIndex == 0 )
            {
                el_results.innerHTML = g_img_bad;
                g_arr_validation[4] = 0;
            }else{
                el_results.innerHTML = g_img_ok;
                g_arr_validation[4] = 1;
            }
            break;
        }  
        case "UserReminderAnswer":
        { 
            if( el_check.value.length >= 3 )
            {
                el_results.innerHTML = g_img_ok;
                g_arr_validation[5] = 1;
            }else{
                el_results.innerHTML = g_img_bad;
                g_arr_validation[5] = 0;
            }
            break;
        }
        case "UserEmail":
        {
            var el_verify = document.getElementById( 'UserEmail2' );
            var el_username = document.getElementById( 'UserLogon' );
            var el_verify_results = document.getElementById( 'email_verify_results' );
            
            //if el_username is disabled then we are on the 
            //update profile page and we want to compare the username
            //with the password
            if( el_username.disabled == true )
            {
                var username = el_username.value;
            }else{
                var username = "";
            }
            
            if( check_email( el_check.value ) == true )
            {
                //el_results.innerHTML = g_img_ok;
                document.getElementById("validate_wrapper").src = "/includes/validate_userName.php?email=" + el_check.value + "&username=" + username;
            }else{
                el_results.innerHTML = g_img_bad;
                g_arr_validation[6] = 0;
            }
            
            if( el_verify.value != el_check.value )
            {
                el_verify_results.innerHTML = g_img_bad;
                g_arr_validation[6] = 0;
            }
            break;
        }
        case "UserEmail2":
        {
            el_email = document.getElementById( 'UserEmail' );
            if( el_check.value == el_email.value && ( check_email( el_email.value ) == true ) )
            {
                el_results.innerHTML = g_img_ok;
                g_arr_validation[7] = 1;
            }else{
                el_results.innerHTML = g_img_bad;
                g_arr_validation[7] = 0;
            }
            break;
        }
        case "LitAgencyEmail":
        {
            if( check_email( el_check.value ) == true )
            {
                el_results.innerHTML = g_img_ok;
                g_arr_validation[8] = 1;
            }else{
                el_results.innerHTML = g_img_bad;
                g_arr_validation[8] = 0;
            }
            break;
        }
        case "UserFname":
        {
             g_arr_validation[9] = check_field_length(el_check, el_results, 1);
             break;
        } 
        case "UserLname":
        {
            g_arr_validation[10] = check_field_length(el_check, el_results, 1);
            break;
        }
        case "UserCompanyPhone1":
        {
            
            var ret = validate_phone_number(el_check.value);
            g_arr_validation[11] = ret;
            if( ret == 0 )
            {
                el_results.innerHTML = g_img_bad;
            }else{
                el_results.innerHTML = g_img_ok;
            }
            break;
        }
        case "UserCompanyAddrs1":
        {
            g_arr_validation[12] = check_field_length(el_check, el_results, 1);
            break;
        }
        case "UserCompanyCity":
        {
            g_arr_validation[13] = check_field_length(el_check, el_results, 1);
            break;
        }
        case "LitAgencyPhone1":
        {
            var ret = validate_phone_number(el_check.value);
            g_arr_validation[14] = ret;
            if( ret == 0 )
            {
                el_results.innerHTML = g_img_bad;
            }else{
                el_results.innerHTML = g_img_ok;
            }
            break;
        }
         case "LitAgencyAgentName":
        {
            g_arr_validation[25] = check_field_length(el_check, el_results, 1);
            break;
        }
        case "LitAgencyName":
        {
            g_arr_validation[15] = check_field_length(el_check, el_results, 1);
            break;
        }
        case "LitAgencyCity":
        {
            g_arr_validation[16] = check_field_length(el_check, el_results, 1);
            break;
        }
        case "UserPosition":
        {
            g_arr_validation[17] = check_field_length(el_check, el_results, 1);
            break;
        }
        case "UserEduBackground":
        {
            g_arr_validation[18] = check_field_length(el_check, el_results, 1);
            break;
        }
        case "UserBio":
        {
            g_arr_validation[19] = check_field_length(el_check, el_results, 1);
            break;
        }
        case "UserPubCredits":
        {
            g_arr_validation[20] = check_field_length(el_check, el_results, 1);
            break;
        }
        case "LitAgencyState":
        case "LitAgencyZip":
        {
            el_state = document.getElementById( 'LitAgencyState' );
            el_zip = document.getElementById( 'LitAgencyZip' );
            if( el_zip.value.length >= 5 && el_state.selectedIndex != 0 )
            {
                el_results.innerHTML = g_img_ok;
                g_arr_validation[21] = 1;
            }else{
                el_results.innerHTML = g_img_bad;
                g_arr_validation[21] = 0;
            }
            break;
        }
        case "UserCompanyState":
        case "UserCompanyZip":
        {
            el_state = document.getElementById( 'UserCompanyState' );
            el_zip = document.getElementById( 'UserCompanyZip' );
            if( el_zip.value.length >= 5 && el_state.selectedIndex != 0 )
            {
                el_results.innerHTML = g_img_ok;
                g_arr_validation[22] = 1;
            }else{
                el_results.innerHTML = g_img_bad;
                g_arr_validation[22] = 0;
            }
            break;
        } 
        case "tos_chk":
        {
            if( el_check.checked == true )
            {
                el_results.innerHTML = g_img_ok;
                g_arr_validation[23] = 1;
            }else{
                el_results.innerHTML = "<img src='../images/tos_ani.gif' width='48' height='15'/>";
                g_arr_validation[23] = 0;
            }
            break;  
        }
    }   
    return;
    
}
function validate_phone_number(phone_number) {
    var tempName = phone_number.replace(/\(/g, "");
	tempName = tempName.replace(/\)/g, "");
	tempName = tempName.replace(/\./g, "");
	tempName = tempName.replace(/\-/g, "");
	tempName = tempName.replace(/\ /g, "");
	if (!checkString(tempName, false, true, false, null, false)) 
    {
		return 0;
	} else if (tempName.toString().length < 10) 
    {
		return 0;
	}
    return 1;
} 

function check_field_length(el_check, el_results, len) {
    if( el_check.value.length >= 1 )
    {
        el_results.innerHTML = g_img_ok;
        return 1;
    }else{
        el_results.innerHTML = g_img_bad;
        return 0;
    }


}
function validateUpload() {
	if (document.getElementById("WorkOutline") != undefined) {
		if ( (document.getElementById("WorkOutline").value == "") && ( document.getElementById("frmTOCFileName").value == "") ) {
			validateError(document.getElementById("WorkOutline"), "Please either type out an outline of your work, or choose an external outline to upload.");
			return false;
		}
		if ( ( document.getElementById("WorkWritingSample").value == "" ) && ( document.getElementById("frmWSFileName").value == "") ) {
			validateError(document.getElementById("WorkWritingSample"), "Please either type out a block of text indicative of your writing style, or choose an external file to upload.");
			return false;
		}
		if ( ( document.getElementById("WorkSummary").value == "" ) && ( document.getElementById("frmSUMMARYFileName").value == "" ) ) {
			validateError(document.getElementById("WorkSummary"), "Please either type out a block of text indicative of your writing style, or choose an external file to upload.");
			return false;
		}
	}
	return true;
}

function validateLitAgent() {
	if (document.getElementById("selectLitAgency") != undefined) {
		var	fieldsToCheck = new Array();
			fieldsToCheck[0] = "LitAgencyAgentName";
			fieldsToCheck[1] = "LitAgencyPhone1";
			fieldsToCheck[2] = "LitAgencyEmail";
			fieldsToCheck[3] = "LitAgencyName";
			
			
		if (document.getElementById("selectLitAgency").selectedIndex == 1) {
			for (i = 0; i < fieldsToCheck.length; i++) {
				if (document.getElementById(fieldsToCheck[i]).value == "") {
					validateError(document.getElementById(fieldsToCheck[i]), "This is a required field..  \nPlease fill it out to the best of your ability."); return false;
					return false;
				}
			}
		}
	}
	return true;
}

function validateError(obj, alertStr) {
	obj.focus();
	obj.style.backgroundColor = "#FF7F7F";
	alert(alertStr);
}

function validateForms(formID) {
	var 	doSubmit	= true;
	var	namesToSkip 	= new Array();
		namesToSkip[0] 	= "frmTOCFileName";
		namesToSkip[1] 	= "frmWSFileName";
		namesToSkip[2] 	= "LitAgency";
		namesToSkip[3] 	= "UserLogon";
		namesToSkip[4] 	= "UserEmail2";
		namesToSkip[5] 	= "UserCompanyPhone2";
		namesToSkip[6] 	= "UserCompanyFax";
		namesToSkip[7] 	= "WorkWritingSample";
		namesToSkip[8] 	= "WorkOutline";
		namesToSkip[9] 	= "UserMname";
		namesToSkip[10] = "UserCompanyAddrs2";
		namesToSkip[11] = "Zip";
		namesToSkip[12] = "keyWord2";
		namesToSkip[13] = "keyWord3";
		namesToSkip[14] = "keyWord4";
		namesToSkip[15] = "keyWord5";
		namesToSkip[16] = "WorkPromotion";
		namesToSkip[17] = "WorkEndorsement";
		namesToSkip[18] = "WorkSummary";
		namesToSkip[19] = "WorkOutline";
		namesToSkip[20] = "frmSUMMARYFileName";
		namesToSkip[21] = "frmILLUSTRATIONFileName";
		namesToSkip[22] = "WorkWordCount";
		namesToSkip[23] = "AcctPromoCode";
		
	if (formID.elements['tos_chk'].checked == false) {
		validateError(formID.elements['tos_chk'], "In order to submit your registration, you must first accept the Terms of Service.");
		doSubmit = false;	
	} else if (formID.elements['UserPassword'] && (formID.elements['UserPassword'].value != formID.elements['UserConfirmPassword'].value)) {
		validateError(formID.elements['UserConfirmPassword'], "Your passwords do not match!  Please correct this before proceeding.");
		doSubmit = false;
	} else if (formID.elements['UserEmail1'] && (formID.elements['UserEmail1'].value != formID.elements['UserEmail2'].value)) {
		validateError(formID.elements['UserEmail2'], "Your email addresses do not match!  Please correct this before proceeding.");
		doSubmit = false;
	} else {
		//recurse through form elements
		for (i = 0; i <= formID.length - 1; i++) {
			var tempObj=formID.elements[i];
			
			//check to see if fieldname in validate skip array
			var checkRequired = true;
			for (k = 0; k < namesToSkip.length; k++) {
				if (tempObj.name.indexOf(namesToSkip[k]) > -1) {
					checkRequired = false;
				}
			}
				
			//skip hidden fields and buttons
			//drop down menus.  makes sure that the user made a selection
			if (doSubmit && tempObj.type != "hidden" && tempObj.type != "button" && tempObj.type != "submit" && (tempObj.name.indexOf("LitAgency") < 0)) {
				if (tempObj.type == "select-one") {
					if ((tempObj.name != "2_MainCat") && (tempObj.name != "2_SecondaryCat") && (tempObj.name != "3_MainCat") && (tempObj.name != "3_SecondaryCat")) {
						
						var checkField = true;
						
						if ((formID.elements['UserCompanyCountry'].selectedIndex > 1) && (formID.elements['UserCompanyCountry'].selectedIndex != 0)) {
							if (tempObj.name == "UserCompanyState") {
								checkField = false;
							}
						}
					
					
						if (tempObj.selectedIndex == 0 && checkField == true) { 
							validateError(tempObj, "Please choose an option from this drop-down menu."); 
							doSubmit = false;
							break; 
						}
					}
				}
				
				var tempval=trim(tempObj.value);
				
				//checks notnull if field is required
				if (checkRequired) {					
					if (tempval == "") {
						validateError(tempObj, "This is a required field..  \nPlease fill it out to the best of your ability.");
						doSubmit = false;
						break;
					}
				}
				//phone numbers
				if ((tempObj.name.indexOf("Phone") > -1 || tempObj.name.indexOf("Fax") > -1) && (tempval != "")) {
					//strip all common phone number conventions out of string in order to accurately test
					var tempName = tempval.replace(/\(/g, "");
					tempName = tempName.replace(/\)/g, "");
					tempName = tempName.replace(/\./g, "");
					tempName = tempName.replace(/\-/g, "");
					tempName = tempName.replace(/\ /g, "");
					if (!checkString(tempName, false, true, false, null, false)) {
						validateError(tempObj, "Please change this phone number so that it only contains numbers (no letters).");
						doSubmit = false;
						break;
					} else if (tempName.toString().length < 10) {
						validateError(tempObj, "This phone number needs to be at least 10 digits long.");
						doSubmit = false;
						break;
					}
				
				//zip code
				} if ((tempObj.name.indexOf("Zip") > -1) && ((!checkString(tempval, false, true, false, null, false)) || (tempval.toString().length < 5))) {
					if (formID.elements['UserCompanyCountry'].selectedIndex == 1) {
						validateError(formID.elements['UserCompanyZip'], "Please enter a valid ZIP code.");
						doSubmit = false;
					}
				//word count
				} if ((tempObj.name.indexOf("WorkWordCount") > -1) && (!checkString(tempval, false, true, false, null, false))) {
					validateError(formID.elements['WorkWordCount'], "Please enter the amount of words in your document, formatted as a number.");
					doSubmit = false;
				//email
				} else if ((tempObj.name.indexOf("Email") > -1) && (tempval != "")) {
					if(!checkString(tempval, true, true, false, "@.", true)) {
						validateError(tempObj, "Please format this e-mail address so it only contains letters and numbers.");
						doSubmit = false;
						break;
					}
				} 
			}
			if (doSubmit && tempObj.type != "hidden" && tempObj.type != "button" && tempObj.type != "submit") {
				tempObj.style.backgroundColor = "#FFFFFF";
			}
		}
	}

	if  (doSubmit) {
		if ( ( validateUpload() == false ) || ( validateLitAgent() == false) ) {
			doSubmit = false;
		}
	}
	
	if (doSubmit) { 
		formID.frmAction.value="New";
		formID.submit(); 
	}
}

function validateUpdateProfile(formID) {
	var 	doSubmit	= true;

	var	namesToSkip 	= new Array();
		namesToSkip[0] 	= "frmTOCFileName";
		namesToSkip[1] 	= "frmWSFileName";
		namesToSkip[2] 	= "LitAgency";
		namesToSkip[3] 	= "UserLogon";
		namesToSkip[4] 	= "UserEmail2";
		namesToSkip[5] 	= "UserCompanyPhone2";
		namesToSkip[6] 	= "UserCompanyFax";
		namesToSkip[7] 	= "WorkWritingSample";
		namesToSkip[8] 	= "WorkOutline";
		namesToSkip[9] 	= "UserMname";
		namesToSkip[10] = "UserCompanyAddrs2";
		namesToSkip[11] = "Zip";
		namesToSkip[12] = "keyWord2";
		namesToSkip[13] = "keyWord3";
		namesToSkip[14] = "keyWord4";
		namesToSkip[15] = "keyWord5";
		namesToSkip[16] = "WorkPromotion";
		namesToSkip[17] = "WorkEndorsement";
		namesToSkip[18] = "WorkSummary";
		namesToSkip[19] = "WorkOutline";
		namesToSkip[20] = "frmSUMMARYFileName";
		namesToSkip[21] = "frmILLUSTRATIONFileName";
		namesToSkip[22] = "WorkWordCount";
		namesToSkip[23] = "AcctPromoCode";
		
	if (formID.elements['UserPassword'] && (formID.elements['UserPassword'].value != formID.elements['UserConfirmPassword'].value)) {
		validateError(formID.elements['UserConfirmPassword'], "Your passwords do not match!  Please correct this before proceeding.");
		doSubmit = false;
	} else if (formID.elements['UserEmail1'] && (formID.elements['UserEmail1'].value != formID.elements['UserEmail2'].value)) {
		validateError(formID.elements['UserEmail2'], "Your email addresses do not match!  Please correct this before proceeding.");
		doSubmit = false;
	} else {
		//recurse through form elements
		for (i = 0; i <= formID.length - 1; i++) {
			var tempObj=formID.elements[i];
			
			//check to see if fieldname in validate skip array
			var checkRequired = true;
			for (k = 0; k < namesToSkip.length; k++) {
				if (tempObj.name.indexOf(namesToSkip[k]) > -1) {
					checkRequired = false;
				}
			}
				
			//skip hidden fields and buttons
			//drop down menus.  makes sure that the user made a selection
			if (doSubmit && tempObj.type != "hidden" && tempObj.type != "button" && tempObj.type != "submit" && (tempObj.name.indexOf("LitAgency") < 0)) {
				if (tempObj.type == "select-one") {
					if ((tempObj.name != "2_MainCat") && (tempObj.name != "2_SecondaryCat") && (tempObj.name != "3_MainCat") && (tempObj.name != "3_SecondaryCat")) {
						if (tempObj.selectedIndex == 0) { 
							validateError(tempObj, "Please choose an option from this drop-down menu."); 
							doSubmit = false;
							break; 
						}
					}
				}
				
				var tempval=trim(tempObj.value);
				
				//checks notnull if field is required
				if (checkRequired) {					
					if (tempval == "") {
						validateError(tempObj, "This is a required field..  \nPlease fill it out to the best of your ability.");
						doSubmit = false;
						break;
					}
				}
				//phone numbers
				if ((tempObj.name.indexOf("Phone") > -1 || tempObj.name.indexOf("Fax") > -1) && (tempval != "")) {
					//strip all common phone number conventions out of string in order to accurately test
					var tempName = tempval.replace(/\(/g, "");
					tempName = tempName.replace(/\)/g, "");
					tempName = tempName.replace(/\./g, "");
					tempName = tempName.replace(/\-/g, "");
					tempName = tempName.replace(/\ /g, "");
					if (!checkString(tempName, false, true, false, null, false)) {
						validateError(tempObj, "Please change this phone number so that it only contains numbers (no letters).");
						doSubmit = false;
						break;
					} else if (tempName.toString().length < 10) {
						validateError(tempObj, "This phone number needs to be at least 10 digits long.");
						doSubmit = false;
						break;
					}
				
				//zip code
				} if ((tempObj.name.indexOf("Zip") > -1) && ((!checkString(tempval, false, true, false, null, false)) || (tempval.toString().length < 5))) {
					validateError(formID.elements['UserCompanyZip'], "Please enter a valid ZIP code.");
					doSubmit = false;
				//word count
				} if ((tempObj.name.indexOf("WorkWordCount") > -1) && (!checkString(tempval, false, true, false, null, false))) {
					validateError(formID.elements['WorkWordCount'], "Please enter the amount of words in your document, formatted as a number.");
					doSubmit = false;
				//email
				} else if ((tempObj.name.indexOf("Email") > -1) && (tempval != "")) {
					if(!checkString(tempval, true, true, false, "@.", true)) {
						validateError(tempObj, "Please format this e-mail address so it only contains letters and numbers.");
						doSubmit = false;
						break;
					}
				} 
			}
			if (doSubmit && tempObj.type != "hidden" && tempObj.type != "button" && tempObj.type != "submit") {
				tempObj.style.backgroundColor = "#FFFFFF";
			}
		}
	}

	if  (doSubmit) {
		if ( ( validateUpload() == false ) || ( validateLitAgent() == false) ) {
			doSubmit = false;
		}
	}
	
	if (doSubmit) { 
		formID.frmAction.value="Update";
		formID.submit(); 
	}
}

function validateUpdateManuscript(formID) {
	var 	doSubmit	= true;

	var	namesToSkip 	= new Array();
		namesToSkip[0] 	= "frmTOCFileName";
		namesToSkip[1] 	= "frmWSFileName";
		namesToSkip[2] 	= "LitAgency";
		namesToSkip[3] 	= "UserLogon";
		namesToSkip[4] 	= "UserEmail2";
		namesToSkip[5] 	= "UserCompanyPhone2";
		namesToSkip[6] 	= "UserCompanyFax";
		namesToSkip[7] 	= "WorkWritingSample";
		namesToSkip[8] 	= "WorkOutline";
		namesToSkip[9] 	= "UserMname";
		namesToSkip[10] = "UserCompanyAddrs2";
		namesToSkip[11] = "Zip";
		namesToSkip[12] = "keyWord2";
		namesToSkip[13] = "keyWord3";
		namesToSkip[14] = "keyWord4";
		namesToSkip[15] = "keyWord5";
		namesToSkip[16] = "WorkPromotion";
		namesToSkip[17] = "WorkEndorsement";
		namesToSkip[18] = "WorkSummary";
		namesToSkip[19] = "WorkOutline";
		namesToSkip[20] = "frmSUMMARYFileName";
		namesToSkip[21] = "frmILLUSTRATIONFileName";
		namesToSkip[22] = "WorkWordCount";
		namesToSkip[23] = "AcctPromoCode";
		
	if (formID.elements['UserPassword'] && (formID.elements['UserPassword'].value != formID.elements['UserConfirmPassword'].value)) {
		validateError(formID.elements['UserConfirmPassword'], "Your passwords do not match!  Please correct this before proceeding.");
		doSubmit = false;
	} else if (formID.elements['UserEmail1'] && (formID.elements['UserEmail1'].value != formID.elements['UserEmail2'].value)) {
		validateError(formID.elements['UserEmail2'], "Your email addresses do not match!  Please correct this before proceeding.");
		doSubmit = false;
	} else {
		//recurse through form elements
		for (i = 0; i <= formID.length - 1; i++) {
			var tempObj=formID.elements[i];
			
			//check to see if fieldname in validate skip array
			var checkRequired = true;
			for (k = 0; k < namesToSkip.length; k++) {
				if (tempObj.name.indexOf(namesToSkip[k]) > -1) {
					checkRequired = false;
				}
			}
				
			//skip hidden fields and buttons
			//drop down menus.  makes sure that the user made a selection
			if (doSubmit && tempObj.type != "hidden" && tempObj.type != "button" && tempObj.type != "submit" && (tempObj.name.indexOf("LitAgency") < 0)) {
				if (tempObj.type == "select-one") {
					if ((tempObj.name != "2_MainCat") && (tempObj.name != "2_SecondaryCat") && (tempObj.name != "3_MainCat") && (tempObj.name != "3_SecondaryCat")) {
						if (tempObj.selectedIndex == 0) { 
							validateError(tempObj, "Please choose an option from this drop-down menu."); 
							doSubmit = false;
							break; 
						}
					}
				}
				
				var tempval=trim(tempObj.value);
				
				//checks notnull if field is required
				if (checkRequired) {					
					if (tempval == "") {
						validateError(tempObj, "This is a required field..  \nPlease fill it out to the best of your ability.");
						doSubmit = false;
						break;
					}
				}
				//phone numbers
				if ((tempObj.name.indexOf("Phone") > -1 || tempObj.name.indexOf("Fax") > -1) && (tempval != "")) {
					//strip all common phone number conventions out of string in order to accurately test
					var tempName = tempval.replace(/\(/g, "");
					tempName = tempName.replace(/\)/g, "");
					tempName = tempName.replace(/\./g, "");
					tempName = tempName.replace(/\-/g, "");
					tempName = tempName.replace(/\ /g, "");
					if (!checkString(tempName, false, true, false, null, false)) {
						validateError(tempObj, "Please change this phone number so that it only contains numbers (no letters).");
						doSubmit = false;
						break;
					} else if (tempName.toString().length < 10) {
						validateError(tempObj, "This phone number needs to be at least 10 digits long.");
						doSubmit = false;
						break;
					}
				
				//zip code
				} if ((tempObj.name.indexOf("Zip") > -1) && ((!checkString(tempval, false, true, false, null, false)) || (tempval.toString().length < 5))) {
					validateError(formID.elements['UserCompanyZip'], "Please enter a valid ZIP code.");
					doSubmit = false;
				//word count
				} if ((tempObj.name.indexOf("WorkWordCount") > -1) && (!checkString(tempval, false, true, false, null, false))) {
					validateError(formID.elements['WorkWordCount'], "Please enter the amount of words in your document, formatted as a number.");
					doSubmit = false;
				//email
				} else if ((tempObj.name.indexOf("Email") > -1) && (tempval != "")) {
					if(!checkString(tempval, true, true, false, "@.", true)) {
						validateError(tempObj, "Please format this e-mail address so it only contains letters and numbers.");
						doSubmit = false;
						break;
					}
				} 
			}
			if (doSubmit && tempObj.type != "hidden" && tempObj.type != "button" && tempObj.type != "submit") {
				tempObj.style.backgroundColor = "#FFFFFF";
			}
		}
	}

	if  (doSubmit) {
		if ( ( validateUpload() == false ) || ( validateLitAgent() == false) ) {
			doSubmit = false;
		}
	}
	
	if (doSubmit) { 
		formID.frmAction.value="New";
		formID.submit(); 
	}
}


function validateUpdateNewManuscript(formID) {
	var 	doSubmit	= true;

	var	namesToSkip 	= new Array();
		namesToSkip[0] 	= "frmTOCFileName";
		namesToSkip[1] 	= "frmWSFileName";
		namesToSkip[2] 	= "LitAgency";
		namesToSkip[3] 	= "UserLogon";
		namesToSkip[4] 	= "UserEmail2";
		namesToSkip[5] 	= "UserCompanyPhone2";
		namesToSkip[6] 	= "UserCompanyFax";
		namesToSkip[7] 	= "WorkWritingSample";
		namesToSkip[8] 	= "WorkOutline";
		namesToSkip[9] 	= "UserMname";
		namesToSkip[10] = "UserCompanyAddrs2";
		namesToSkip[11] = "Zip";
		namesToSkip[12] = "keyWord2";
		namesToSkip[13] = "keyWord3";
		namesToSkip[14] = "keyWord4";
		namesToSkip[15] = "keyWord5";
		namesToSkip[16] = "WorkPromotion";
		namesToSkip[17] = "WorkEndorsement";
		namesToSkip[18] = "WorkSummary";
		namesToSkip[19] = "WorkOutline";
		namesToSkip[20] = "frmSUMMARYFileName";
		namesToSkip[21] = "frmILLUSTRATIONFileName";
		namesToSkip[22] = "WorkWordCount";
		namesToSkip[23] = "AcctPromoCode";
        namesToSkip[24] = "lkup_worktype";
		
	if (formID.elements['UserPassword'] && (formID.elements['UserPassword'].value != formID.elements['UserConfirmPassword'].value)) {
		validateError(formID.elements['UserConfirmPassword'], "Your passwords do not match!  Please correct this before proceeding.");
		doSubmit = false;
	} else if (formID.elements['UserEmail1'] && (formID.elements['UserEmail1'].value != formID.elements['UserEmail2'].value)) {
		validateError(formID.elements['UserEmail2'], "Your email addresses do not match!  Please correct this before proceeding.");
		doSubmit = false;
	} else {
		//recurse through form elements
		for (i = 0; i <= formID.length - 1; i++) {
			var tempObj=formID.elements[i];
			
			//check to see if fieldname in validate skip array
			var checkRequired = true;
			for (k = 0; k < namesToSkip.length; k++) {
				if (tempObj.name.indexOf(namesToSkip[k]) > -1) {
					checkRequired = false;
				}
			}
				
			//skip hidden fields and buttons
			//drop down menus.  makes sure that the user made a selection
			if (doSubmit && tempObj.type != "hidden" && tempObj.type != "button" && tempObj.type != "submit" && (tempObj.name.indexOf("LitAgency") < 0)) {
				if (tempObj.type == "select-one") {
					if ((tempObj.name != "2_MainCat") && (tempObj.name != "2_SecondaryCat") && (tempObj.name != "3_MainCat") && (tempObj.name != "3_SecondaryCat") && (tempObj.name != "lkup_worktype")) {
						if (tempObj.selectedIndex == 0) { 
							validateError(tempObj, "Please choose an option from this drop-down menu."); 
							doSubmit = false;
							break; 
						}
					}
				}
				
				var tempval=trim(tempObj.value);
				
				//checks notnull if field is required
				if (checkRequired) {					
					if (tempval == "") {
						validateError(tempObj, "This is a required field..  \nPlease fill it out to the best of your ability.");
						doSubmit = false;
						break;
					}
				}
				//phone numbers
				if ((tempObj.name.indexOf("Phone") > -1 || tempObj.name.indexOf("Fax") > -1) && (tempval != "")) {
					//strip all common phone number conventions out of string in order to accurately test
					var tempName = tempval.replace(/\(/g, "");
					tempName = tempName.replace(/\)/g, "");
					tempName = tempName.replace(/\./g, "");
					tempName = tempName.replace(/\-/g, "");
					tempName = tempName.replace(/\ /g, "");
					if (!checkString(tempName, false, true, false, null, false)) {
						validateError(tempObj, "Please change this phone number so that it only contains numbers (no letters).");
						doSubmit = false;
						break;
					} else if (tempName.toString().length < 10) {
						validateError(tempObj, "This phone number needs to be at least 10 digits long.");
						doSubmit = false;
						break;
					}
				
				//zip code
				} if ((tempObj.name.indexOf("Zip") > -1) && ((!checkString(tempval, false, true, false, null, false)) || (tempval.toString().length < 5))) {
					validateError(formID.elements['UserCompanyZip'], "Please enter a valid ZIP code.");
					doSubmit = false;
				//word count
				} if ((tempObj.name.indexOf("WorkWordCount") > -1) && (!checkString(tempval, false, true, false, null, false))) {
					validateError(formID.elements['WorkWordCount'], "Please enter the amount of words in your document, formatted as a number.");
					doSubmit = false;
				//email
				} else if ((tempObj.name.indexOf("Email") > -1) && (tempval != "")) {
					if(!checkString(tempval, true, true, false, "@.", true)) {
						validateError(tempObj, "Please format this e-mail address so it only contains letters and numbers.");
						doSubmit = false;
						break;
					}
				} 
			}
			if (doSubmit && tempObj.type != "hidden" && tempObj.type != "button" && tempObj.type != "submit") {
				tempObj.style.backgroundColor = "#FFFFFF";
			}
		}
	}

	if  (doSubmit) {
		if ( ( validateUpload() == false ) || ( validateLitAgent() == false) ) {
			doSubmit = false;
		}
	}
	
	if (doSubmit) { 
		formID.frmAction.value="New";
		formID.submit(); 
	}
}

function checkString(str, allowAlpha, allowNumeric, allowSpace, extraChars, requireExtraChars) {
	var extraCharsTest = new Array();
	for (k = 0; k <= (str.length - 1); ++ k) {
		checkFlag = true;
		if (extraChars != null) {
			//check requested special chars
			for (j = 0; j <= extraChars.length; ++ j) {
				if (str.charAt(k) == extraChars.charAt(j)) {
					checkFlag = false;
					extraCharsTest[j] = true;
					break;
				}
			}
		}
		if (checkFlag) {
			if (str.charAt(k) == " ") {
				//check space
				if (!allowSpace) {
					return false;
				}
			} else if (isNumber(str.charAt(k))) {
				//check num
				if (!allowNumeric) {
					return false;
				}
			} else if (typeof str.charAt(k) == 'string') {
				//check remaining special chars
				//asciiValue = getAsciiValue(str.charAt(k));
				if (!allowAlpha) {
					return false;
				} //else if ((asciiValue < 65) || (asciiValue > 90 && asciiValue < 97)) {
					//return false;
				//}
			}
		}
	}
	//make sure all extra characters were included in string, if required
	if (requireExtraChars) {
		if (extraCharsTest.length != extraChars.length) {
			return false;
		}
	}
	return true;
}

function getAsciiValue(str) {
//not working yet
	for (i = 0; i < 256; ++ i) {
		// convert i into a 2-digit hex string
		var h = i.toString(16);
		if (h.length == 1) {
			h = "0" + h;
		}

		// insert a % character into the string
		h = "%" + h;

		// determine the character represented by the escape code
		h = unescape (h);
		alert(h);
		// if the characters match, we've found the ASCII value
		if (h == str) {
			break;
		}
	}
	return i;
}

function trim(str) {
	return str.replace(/^\s+|\s+$/g, '')
}
