/*
The isEmpty and isWhitespace functions were taken straight from Netscape's JavaScript development site, http://developer
.netscape.com.
*/
var numb = '0123456789';
var lwr = 'abcdefghijklmnopqrstuvwxyz';
var upr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';

function isValid(parm,val) {
        if (parm == "") return true;
        for (i=0; i<parm.length; i++) {
                if (val.indexOf(parm.charAt(i),0) == -1) return false;
        }
        return true;
}

function trim(s) {
	return s.replace(/^\s+|\s+$/g, "");
}

function isNum(parm) {return isValid(parm,numb);}

function isFloat(s) {
	var n = trim(s);
	return n.length>0 && !(/[^0-9.]/).test(n) && (/\.\d/).test(n);
}

function isNumber(s) {
	var n = trim(s);
	return n.length>0 && +n == n;
}

// whitespace characters
var whitespace = " \t\n\r";

/****************************************************************/
function leftpad(theItem, thePad, minSize) {
	newItem = new String(theItem);
	while (newItem.length < minSize) {
		newItem = thePad + newItem;
	}
	return newItem;
}

/****************************************************************/
function isEmpty(s) {
// Check whether string s is empty.
	return ((s == null) || (s.length == 0))
}

/****************************************************************/
function isWhitespace(s) {
	var i;

// Is s empty?
	if (isEmpty(s))
		return true;

// Search through string's characters one by one
// until we find a non-whitespace character.
// When we do, return false; if we don't, return true.

        for (i = 0; i < s.length; i++) {
// Check that current character isn't whitespace.
                var c = s.charAt(i);
                if (whitespace.indexOf(c) == -1)
                        return false;
        }

// All characters are whitespace.
        return true;
}

/****************************************************************/
function ForceEntry(val, str) {
        var strInput = new String(val.value);

        if (isWhitespace(strInput)) {
                alert(str);
                return false;
        }
 else
                return true;
}

/****************************************************************/
function ValidateCommonData(pronoun) {
USA="USA";
CANADA="CANADA";
        if (isEmpty(document.webform.Street_Address.value)) {
                alert("Please enter " + pronoun + " Street Address.");
                document.webform.Street_Address.focus();
                return false;
        }

        if (isEmpty(document.webform.Phone_Number.value)) {
                alert("Please enter " + pronoun + " Phone Number.");
                document.webform.Phone_Number.focus();
                return false;
        }

        if ((isEmpty(document.webform.City.value)) || (document.webform.State.selectedIndex == 0) || (isEmpty(document.webform.Zip_Code.value))) {
                alert("Please enter " + pronoun + " City, State/Province, Zip Code, and Country.");
                if (isEmpty(document.webform.City.value))
                        document.webform.City.focus();
                else if (document.webform.State.selectedIndex == 0)
                        document.webform.State.focus();
                else if (isEmpty(document.webform.Zip_Code.value))
                        document.webform.Zip_Code.focus();
                return false;
        }
	if ((document.webform.Country.value == USA) || (document.webform.Country.value == CANADA)) {
		if (document.webform.State.selectedIndex < 2) {
                	alert("Please enter " + pronoun + " State/Province.");
                        document.webform.State.focus();
                	return false;
        	}
        }
	return true;

}

/****************************************************************/
var selectedOptions = [];
function countSelected(select,maxNumber){
	for (var i=0; i<select.options.length; i++){
		if (select.options[i].selected && select.options[i].value != "" && !new RegExp(i,'g').test(selectedOptions.toString())){
			selectedOptions.push(i);
		}

		if (!select.options[i].selected && new RegExp(i,'g').test(selectedOptions.toString())){
			selectedOptions = selectedOptions.sort(function(a,b){return a-b});  
			for (var j=0; j<selectedOptions.length; j++){
				if (selectedOptions[j] == i){
					selectedOptions.splice(j,1);
				}
			}
		}

		if (select.options[i].value == "") {
			select.options[i].selected = false;
		}
		if (selectedOptions.length > maxNumber) {
			var throwAlert = true;
			select.options[i].selected = false;
			selectedOptions.pop();
		}
	}

	if (throwAlert == true){
		return false;
	}
	else
		return true;
}

/****************************************************************/
function ValidateEnrollData() {

//<input type=hidden name="required" value="realname,email,Phone_Number,Country,Street_Address,City,State,Zip_Code,SCN_member,editorial_level">

        if (isEmpty(document.webform.realname.value)) {
                alert("Please enter your Name.");
                document.webform.realname.focus();
                return false;
        }
	if (!ValidateCommonData("your"))
		return false;
        if (isEmpty(document.webform.email.value)) {
		alert("Please enter your Email Address.");
                document.webform.email.focus();
                return false;
        }
	else {
		email=document.webform.email.value;
		if ((email.indexOf("@") == -1) || (email.indexOf(".") == -1)) {
			alert("Invalid email address: '" + email + "'");
			document.webform.email.focus();
			return false;
		}
        }
        if ((document.webform.SCN_member[0].checked == false) & (document.webform.SCN_member[1].checked == false)) {
                alert("Please indicate your membership status");
                document.webform.SCN_member[0].focus();
                return false;
        }
        if ((document.webform.editorial_level[0].checked == false) & (document.webform.editorial_level[1].checked == false) & (document.webform.editorial_level[2].checked == false) & (document.webform.editorial_level[3].checked == false) & (document.webform.editorial_level[4].checked == false) & (document.webform.editorial_level[5].checked == false) & (document.webform.editorial_level[6].checked == false) & (document.webform.editorial_level[7].checked == false)) {
                alert("Please select the type of editing you want");
                document.webform.editorial_level[0].focus();
                return false;
        }
	else {
        	if (document.webform.editorial_level[0].checked == true) {
			levelname=document.webform.name1.value;
			levelnum=document.webform.editorial_level[0].value;
			rate=document.webform.level1.value;
        	}
        	else if (document.webform.editorial_level[1].checked == true) {
			levelname=document.webform.name2.value;
			levelnum=document.webform.editorial_level[1].value;
			rate=document.webform.level2.value;
        	}
        	else if (document.webform.editorial_level[2].checked == true) {
			levelname=document.webform.name3.value;
			levelnum=document.webform.editorial_level[2].value;
			rate=document.webform.level3.value;
        	}
        	else if (document.webform.editorial_level[3].checked == true) {
			levelname=document.webform.nameproof.value;
			levelnum=document.webform.editorial_level[3].value;
			rate=document.webform.proof.value;
        	}
        	else if (document.webform.editorial_level[4].checked == true) {
			levelname=document.webform.name4.value;
			levelnum=document.webform.editorial_level[4].value;
        	}
        	else if (document.webform.editorial_level[5].checked == true) {
			levelname=document.webform.name5.value;
			levelnum=document.webform.editorial_level[5].value;
        	}
        	else if (document.webform.editorial_level[6].checked == true) {
			levelname=document.webform.name6.value;
			levelnum=document.webform.editorial_level[6].value;
        	}
        	else {
			levelname=document.webform.name7.value;
			levelnum=document.webform.editorial_level[7].value;
			rate=document.webform.consult.value;
        	}
        }
	number_of_pages=document.webform.number_of_pages.value;
	number_of_hours=document.webform.number_of_hours.value;
	flat_rate=document.webform.flat_rate.value;
/*#pages*/
        if ((document.webform.editorial_level[0].checked == true) || (document.webform.editorial_level[1].checked == true) || (document.webform.editorial_level[2].checked == true) || (document.webform.editorial_level[3].checked == true)) {
        	if ((isEmpty(document.webform.number_of_pages.value)) || (document.webform.number_of_pages.value == 0)) {
                	alert("Please enter the number of pages to be edited.");
                	document.webform.number_of_pages.focus();
                	return false;
        	}
        	else if (!isNum(document.webform.number_of_pages.value)) {
			alert("You entered an invalid number of pages to be edited (" + document.webform.number_of_pages.value + "). Please enter a numeric value.");
               		document.webform.number_of_pages.focus();
               		return false;
        	}
               	document.webform.number_of_hours.value=0;
               	document.webform.flat_rate.value=0;
        }
/*flat rate*/
        else if ((document.webform.editorial_level[4].checked == true) || (document.webform.editorial_level[5].checked == true) || (document.webform.editorial_level[6].checked == true)) {
        	if ((isEmpty(document.webform.flat_rate.value)) || (document.webform.flat_rate.value == 0)) {
                	alert("Please enter the flat rate for this project.");
                	document.webform.flat_rate.focus();
                	return false;
        	}
        	else if (!isNum(document.webform.flat_rate.value)) {
			alert("You entered an invalid flat rate for this project (" + document.webform.flat_rate.value + "). Please enter a numeric value.");
               		document.webform.flat_rate.focus();
               		return false;
        	}
		rate=document.webform.flat_rate.value;
               	document.webform.number_of_pages.value=0;
               	document.webform.number_of_hours.value=0;
        }
/*#hours*/
	else {
        	if ((isEmpty(document.webform.number_of_hours.value)) || (document.webform.number_of_hours.value == 0)) {
                	alert("Please enter the number of hours of consultation.");
                	document.webform.number_of_hours.focus();
                	return false;
        	}
        	else if (!isNum(document.webform.number_of_hours.value)) {
			alert("You entered an invalid number of hours of consultation (" + document.webform.number_of_hours.value + "). Please enter a numeric value.");
               		document.webform.number_of_hours.focus();
               		return false;
        	}
               	document.webform.number_of_pages.value=0;
               	document.webform.flat_rate.value=0;
        }
	if (document.webform.project.selectedIndex == 0) {
                alert("Please indicate the type of project to be edited.");
		document.webform.project.focus();
		return false;
        }
/*
	if ((document.webform.editor_name.selectedIndex != -1) && (document.webform.editor_name.value != "no preference")) {
                if (countSelected(document.webform.editor_name,3) == false) {
                        alert("No more than 3 editors may be selected; only the first 3 have been saved.");
                        document.webform.editor_name.focus();
                        return false;
                }
        }
*/
	thishii="sces";
        if (isEmpty(document.webform.hii.value)) {
                alert("Please enter the answer to the Human Intelligence Identification Question.");
                document.webform.hii.focus();
                return false;
        }
        else {
                hii=document.webform.hii.value;
                if (hii != thishii) {
                        alert("You entered an incorrect value: '" + hii + "'. Please provide the correct answer to the required 'Human Intelligence Identification Answer'. This field must be filled in correctly before you can successfully submit the form.");
                        document.webform.hii.focus();
                        return false;
                }
        }
        document.webform.hiianswer.value=thishii;

	editor_name=document.webform.editor_name1.value + "," + document.webform.editor_name2.value + "," + document.webform.editor_name3.value;
	TotalEditSvcAmt();
/*levelname,levelnum,qty,rate,itemtype,editor1,editor2,editor3*/
/*
	document.webform.qty.value=qty;
*/
	document.webform.editor_enroll.value=levelname + "," + levelnum + "," + qty + "," + rate + "," + what + "," + editor_name;
}

/****************************************************************/
function TotalEditSvcAmt() {
/*
<input type=hidden name="nonmember_fee" value="<?php echo $NONMEMFEE; ?>">
<input type=hidden name="level1" value="<?php echo $LEVEL1; ?>">
<input type=hidden name="level2" value="<?php echo $LEVEL2; ?>">
<input type=hidden name="level3" value="<?php echo $LEVEL3; ?>">
<input type=hidden name="proof" value="<?php echo $PROOF; ?>">
<input type=hidden name="consult" value="<?php echo $CONSULT; ?>">
*/
	nonmember_fee=parseFloat(document.webform.nonmember_fee.value);
	level1=parseFloat(document.webform.level1.value);
	level2=parseFloat(document.webform.level2.value);
	level3=parseFloat(document.webform.level3.value);
	proof=parseFloat(document.webform.proof.value);
	consult=parseFloat(document.webform.consult.value);
	number_of_pages=parseFloat(document.webform.number_of_pages.value);
	number_of_hours=parseFloat(document.webform.number_of_hours.value);
	flat_rate=parseFloat(document.webform.flat_rate.value);
        qty=0;
	if (document.webform.SCN_member[0].checked == true) {
        	nonmemfee=0;
		nonmemtxt="";
	}
	else {
        	nonmemfee=nonmember_fee;
		nonmemtxt="$" + nonmemfee + " non-member fee, + ";
	}
        if (document.webform.editorial_level[0].checked == true) {
		rate=level1;
		qty=number_of_pages;
		what="pages";
		what2="pg";
		document.webform.rate_per_page.value=rate;
		document.webform.rate_per_item.value=0;
		document.webform.rate_per_hour.value=0;
	}
        else if (document.webform.editorial_level[1].checked == true) {
		rate=level2;
		qty=number_of_pages;
		what="pages";
		what2="pg";
		document.webform.rate_per_page.value=rate;
		document.webform.rate_per_item.value=0;
		document.webform.rate_per_hour.value=0;
	}
        else if (document.webform.editorial_level[2].checked == true) {
		rate=level3;
		qty=number_of_pages;
		what="pages";
		what2="pg";
		document.webform.rate_per_page.value=rate;
		document.webform.rate_per_item.value=0;
		document.webform.rate_per_hour.value=0;
	}
        else if (document.webform.editorial_level[3].checked == true) {
		rate=proof;
		qty=number_of_pages;
		what="pages";
		what2="pg";
		document.webform.rate_per_page.value=rate;
		document.webform.rate_per_item.value=0;
		document.webform.rate_per_hour.value=0;
	}
        else if ((document.webform.editorial_level[4].checked == true) || (document.webform.editorial_level[5].checked == true) ||(document.webform.editorial_level[6].checked == true)) {
		rate=flat_rate;
		qty=1;
        	if (document.webform.editorial_level[4].checked == true)
			what="write/ghostwrite";
		else
			what="evaluation";
		what2="item";
		document.webform.rate_per_item.value=rate;
		document.webform.rate_per_page.value=0;
		document.webform.rate_per_hour.value=0;
	}
        else {
		rate=consult;
		qty=number_of_hours;
		what="hours";
		what2="hr";
		document.webform.rate_per_hour.value=rate;
		document.webform.rate_per_page.value=0;
		document.webform.rate_per_item.value=0;
	}

        amtdue=nonmemfee + (qty * rate);
	explanatory_text="";
	explanatory_text=nonmemtxt + " (" + qty + " " + what + " * $" + rate + "/" + what2 + ")";
	document.webform.amtdue.value=amtdue;
	document.webform.amtdue2.value=amtdue;
	document.webform.explanatory_text.value=explanatory_text;

}


