function setError ( error ) {
	document.getElementById("error"+error).innerHTML="ERROR: Required";
	document.getElementById("error"+error).style.color="#ff0000";
	document.getElementById("error"+error).style.FontWeight="bold";
}

function setErrorMSG ( error, msg ) {
	document.getElementById("error"+error).innerHTML="ERROR: " + msg;
	document.getElementById("error"+error).style.color="#ff0000";
	document.getElementById("error"+error).style.FontWeight="bold";
}

function unsetError ( error ) {
	document.getElementById("error"+error).innerHTML="Required";
	document.getElementById("error"+error).style.color="#0077ff";
	document.getElementById("error"+error).style.FontWeight="normal";
}

function unsetErrorBlank ( error ) {
	document.getElementById("error"+error).innerHTML="";
	document.getElementById("error"+error).style.color="#0077ff";
	document.getElementById("error"+error).style.FontWeight="normal";
}

function clear_form() {
	document.getElementById("firstname").value = "";
	document.getElementById("lastname").value = "";
	document.getElementById("email").value = "";
	document.getElementById("email2").value = "";
	document.getElementById("wifesname").value = "";
	document.getElementById("wifesemail").value = "";
	document.getElementById("wifesemail2").value = "";
	document.getElementById("childrensnames").value = "";
	document.getElementById("address").value = "";
	document.getElementById("apt").value = "";
	document.getElementById("city").value = "";
	document.getElementById("state").value = "";
	document.getElementById("zip").value = "";
	document.getElementById("phone").value = "";
	document.getElementById("hebrewname").value = "";
	document.getElementById("wifeshebrewname").value = "";
	document.getElementById("childrenshebrewnames").value = "";
	document.getElementById("yartzheitinfo").value = "";
	document.getElementById("barmitzvahparsha").value = "";
	document.getElementById("chazzanS").value = "";
	document.getElementById("chazzanM").value = "";
	showLayer("submitform");
}

function validate_form ( item, type, error, required ) {
	var hasError=0;
//	alert("req: " + required + ", error: " + error + ", item.value: " + item.value);
	if (required==null) { required=0; }
	if (item=="all") {
		if ((document.getElementById("firstname").value == "")  || (validate_form ( document.getElementById("firstname"), "text", 1, 1 )==false) ) { setError(1); hasError=1; } else { unsetError(1); }
		if ((document.getElementById("lastname").value == "")   || (validate_form ( document.getElementById("lastname"), "text", 2, 1 )==false) ) { setError(2); hasError=1; } else { unsetError(2); }
		if ((document.getElementById("email").value == "")      || (validate_form ( document.getElementById("email"), "email", 3, 1 )==false) ) { setError(3); hasError=1; } else { unsetError(3); }
		if ((document.getElementById("email2").value == "")     || (validate_form ( document.getElementById("email2"), "email", 3, 1 )==false) ) { setError(3); hasError=1; } else { unsetError(3); }
		if (document.getElementById("email").value != document.getElementById("email2").value) { setErrorMSG(3, "Passwords Must Match"); hasError=1; } else { unsetError(3); }
		
		if ((document.getElementById("wifesname").value != "")  && (validate_form ( document.getElementById("wifesname"), "text", 4, 0 )==false) ) { setErrorMSG(4,"Invalid Name"); hasError=1; } else { unsetErrorBlank(4); }
		if ((document.getElementById("wifesemail").value != "")  && (validate_form ( document.getElementById("wifesemail"), "email", 5, 0 )==false) ) { setErrorMSG(5,"Invalid E-mail"); hasError=1; } else { unsetErrorBlank(5); }
		if ((document.getElementById("wifesemail2").value != "")  && (validate_form ( document.getElementById("wifesemail2"), "email", 5, 0 )==false) ) { setErrorMSG(5,"Invalid E-mail"); hasError=1; } else { unsetErrorBlank(5); }
		if (document.getElementById("wifesemail").value != document.getElementById("wifesemail2").value) { setErrorMSG(5, "Passwords Must Match"); hasError=1; } else { unsetError(5); }
		
		if ((document.getElementById("childrensnames").value != "") && (validate_form ( document.getElementById("childrensnames"), "text", 6, 0 )==false) ) { setErrorMSG(6, "Invalid Names"); hasError=1; } else { unsetErrorBlank(6); }

		if ((document.getElementById("address").value == "")    || (validate_form ( document.getElementById("address"), "text", 7, 1 )==false) ) { setError(7); hasError=1; } else { unsetError(7); }

		if ((document.getElementById("apt").value != "") && (validate_form ( document.getElementById("apt"), "text", 8, 0 )==false) ) { setErrorMSG(8,"Invalid Apt."); hasError=1; } else { unsetErrorBlank(8); }
		
		if ((document.getElementById("city").value == "")       || (validate_form ( document.getElementById("city"), "text", 9, 1 )==false) ) { setError(9); hasError=1; } else { unsetError(9); }
		if ((document.getElementById("state").value == "")      || (validate_form ( document.getElementById("state"), "state", 10, 1 )==false) ) { setError(10); hasError=1; } else { unsetError(10); }
		if ((document.getElementById("zip").value == "")        || (validate_form ( document.getElementById("zip"), "number", 11, 1 )==false) ) { setError(11); hasError=1; } else { unsetError(11); }
		if ((document.getElementById("phone").value == "")      || (validate_form ( document.getElementById("phone"), "phone", 12, 1 )==false) ) { setError(12); hasError=1; } else { unsetError(12); }
		if ((document.getElementById("hebrewname").value == "") || (validate_form ( document.getElementById("hebrewname"), "hebrewname", 13, 1 )==false) ) { setError(13); hasError=1; } else { unsetError(13); }

		if ((document.getElementById("wifeshebrewname").value != "") && (validate_form ( document.getElementById("wifeshebrewname"), "hebrewname", 14, 0 )==false) ) { setErrorMSG(14,"Invalid Name"); hasError=1; } else { unsetErrorBlank(14); }
		if ((document.getElementById("childrenshebrewnames").value != "") && (validate_form ( document.getElementById("childrenshebrewnames"), "text", 15, 0 )==false) ) { setErrorMSG(15,"Invalid Names"); hasError=1; } else { unsetErrorBlank(15); }
		if ((document.getElementById("yartzheitinfo").value != "") && (validate_form ( document.getElementById("yartzheitinfo"), "text", 16, 0 )==false) ) { setErrorMSG(16,"Invalid Info"); hasError=1; } else { unsetErrorBlank(16); }
		if ((document.getElementById("barmitzvahparsha").value != "") && (validate_form ( document.getElementById("barmitzvahparsha"), "text", 17, 0 )==false) ) { setError(17, "Invalid Parsha"); hasError=1; } else { unsetErrorBlank(17); }

		if ((document.getElementById("statusK").value=="") && (document.getElementById("statusL").value =="") && (document.getElementById("statusY").value=="")) {
		 	hasError=1;
			setError(20);
		} else { unsetError(20); }
		if ( hasError==1 ) { return false; } else {
			document.aliyahcard.submit();
			hideLayer("submitform");
			showLayer("thanks");
		}
	} else {
		if ((required==0) && (item.value=="")) {
			unsetError(error);
			return true;
		} else if ((required==1) && (item.value=="")) {
			hasError=1;
			setError(error);
			return false;
		}
		if ((item.value.length==0) && (required==0)) {
		  return true;
		} else {
			if (type=="text") {
				if (item.value.length<2) {
					if (required==1) {
						setError(error);
					} else {
						setErrorMSG(error,"Invalid Entry");
					}
					return false;
				} else {
					if (required==1) {
						unsetError(error);
					} else {
						unsetErrorBlank(error);
					}
				}
			} else if (type=="state") {
				if (item.value.length!=2) { setError(error); return false; }
			} else if (type=="email") {
				if (isValidEmail(item.value,false)) {
					if (required==1) {
						unsetError(error);
					} else {
						unsetErrorBlank(error);
					}
					return true;
				} else { setErrorMSG(error,"Invalid E-mail"); return false; }
			} else if (type=="email2") {
			    var email2str = item.id;
			    if (email2str!="") {
			        var email1str = email2str.substr(0,email2str.length-1);
			        var email1item = document.getElementById(email1str);
			        if (email1item!=null) {
				        if (item.value == email1item.value) {
    					    if (required==1) {
						        unsetError(error);
					        } else {
    						    unsetErrorBlank(error);
					        }
					        return true;
				        } else { setErrorMSG(error,"E-mails Must Match"); return false; }
				    }
				}
			} else if (type=="phone") {
				if (checkInternationalPhone(item.value)) {
					unsetError(error);
					return true;
				} else {
					setError(error);
					return false;
				}
			} else if (type=="number") {
				if (isInteger(item.value)) { return true; } else { return false; }
			} else if (type=="hebrewname") {
				if (ValidateHebrewName(item.value))  {
					if (required==1) {
						unsetError(error);
					} else {
						unsetErrorBlank(error);
					}
					return true;
				} else {
					if (required==1) {
						setError(error);
					} else {
						setErrorMSG(error,"Invalid Hebrew Name, see footnote");
					}
					return false;
				}
			}
		}
		if ( hasError==1 ) {
			return false;
		} else {
			if (required==1) {
				unsetError(error);
			} else {
				unsetErrorBlank(error);
			}
			return true;
		}
	}
}

function makeblue ( elem ) {
	elem.style.color = "#0044ff";	
}

function makered ( elem ) {
	elem.style.color = "#ff4400";	
}

function makewhite ( elem ) {
	elem.style.color = "#ffffff";	
}


function createCookie(name,value,days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime()+(days*24*60*60*1000));
        var expires = "; expires="+date.toGMTString();
    }
    else var expires = "";
    document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;
}

function eraseCookie(name) {
    createCookie(name,"",-1);
}

function showLayer( whichLayer ) {
    var elem, vis;
    if( document.getElementById ) // this is the way the standards work
        elem = document.getElementById( whichLayer );
    else if( document.all ) // this is the way old msie versions work
        elem = document.all[whichLayer];
    else if( document.layers ) // this is the way nn4 works 
        elem = document.layers[whichLayer];
    vis = elem.style;  // if the style.display value is blank we try to figure it out here
    vis.display = 'block';
}

function hideLayer( whichLayer ) {
    var elem, vis;
    if( document.getElementById ) // this is the way the standards work
        elem = document.getElementById( whichLayer );
    else if( document.all ) // this is the way old msie versions work
        elem = document.all[whichLayer];
    else if( document.layers ) // this is the way nn4 works 
        elem = document.layers[whichLayer];
    vis = elem.style;  // if the style.display value is blank we try to figure it out here
    vis.display = 'none';
}

function startup () {
//	document.getElementById("submitform").style.width = "100px";
//	document.getElementById("clearform").style.width = "100px";
}
