var isNN = (navigator.appName.indexOf("Netscape")!=-1);

var phone;
var formid = 1;

function autoTab(input,len, e) {    //  Auto tab to next input field
var keyCode = (isNN) ? e.which : e.keyCode; 
var filter = (isNN) ? [0,8,9] : [0,8,9,16,17,18,37,38,39,40,46];
if(input.value.length >= len && !containsElement(filter,keyCode)) {
input.value = input.value.slice(0, len);
input.form[(getIndex(input)+1) % input.form.length].focus();
}}

function containsElement(arr, ele) {
var found = false, index = 0;
while(!found && index < arr.length)
if(arr[index] == ele)
found = true;
else
index++;
return found;
}

function getIndex(input) {
var index = -1, i = 0, found = false;
while (i < input.form.length && index == -1)
if (input.form[i] == input)index = i;
else i++;
return index;  }

function intOnly(i) {    //  allow numeric input only
if(i.value.length>0) {
i.value = i.value.replace(/[^\d]+/g, '');
}}

function CheckZero(f) {
if (f.elements['amount'].value=="0.00") {alert ('No items selected.'); return false;}
return true}

function fillzip(form) {  //  initialize zip and area code based on selected city

if (form.city.value=="Belle Meade") {form.zip.value="08502";  form.night_phone_a.value="908";}
if (form.city.value=="Columbus") {form.zip.value="08022"; form.night_phone_a.value="609";}
if (form.city.value=="Cranbury")   {form.zip.value="08512"; form.night_phone_a.value="609";}
if (form.city.value=="Dayton")      {form.zip.value="08810"; form.night_phone_a.value="732";}
if (form.city.value=="East Brunswick") {form.zip.value="08816"; form.night_phone_a.value="732";}
if (form.city.value=="East brunswick") {form.zip.value="08816"; form.night_phone_a.value="732";}
if (form.city.value=="East Windsor") {form.zip.value="08512"; form.night_phone_a.value="609";}
if (form.city.value=="East windsor") {form.zip.value="08512"; form.night_phone_a.value="609";}
if (form.city.value=="Edison")           {form.zip.value="08817"; form.night_phone_a.value="732";}
if (form.city.value=="Ewing Township") {form.zip.value="08618"; form.night_phone_a.value="609";}
if (form.city.value=="Franklin Park")  {form.zip.value="08823"; form.night_phone_a.value="732";}
if (form.city.value=="Highland Park") {form.zip.value="08904"; form.night_phone_a.value="732";}
if (form.city.value=="Hillsborough") {form.zip.value="08844"; form.night_phone_a.value="908";}
if (form.city.value=="Jamesburg")    {form.zip.value="08831"; form.night_phone_a.value="609"; }
if (form.city.value=="Kingston")       {form.zip.value="08528"; form.night_phone_a.value="609"; }
if (form.city.value=="Kendall Park") {form.zip.value="08824"; form.night_phone_a.value="732"; }
if (form.city.value=="Lawrenceville") {form.zip.value="08648"; form.night_phone_a.value="609";}
if (form.city.value=="Manville")     {form.zip.value="08835"; form.night_phone_a.value="908";}
if (form.city.value=="Marlboro")     {form.zip.value="07746"; form.night_phone_a.value="732";}
if (form.city.value=="Milltown")      {form.zip.value="08850"; form.night_phone_a.value="732";}
if (form.city.value=="Monmouth Junction") {form.zip.value="08852"; form.night_phone_a.value="732";}
if (form.city.value=="Monroe Township") {form.zip.value="08831"; form.night_phone_a.value="609";}
if (form.city.value=="New Brunswick") {form.zip.value="08901"; form.night_phone_a.value="732";}
if (form.city.value=="North Brunswick") {form.zip.value="08902"; form.night_phone_a.value="732";}
if (form.city.value=="Old Bridge")    {form.zip.value="08857"; form.night_phone_a.value="732";}
if (form.city.value=="Piscataway")   {form.zip.value="08854"; form.night_phone_a.value="732";}
if (form.city.value=="Plainsboro")    {form.zip.value="08536"; form.night_phone_a.value="609";}
if (form.city.value=="Princeton")      {form.zip.value="08540"; form.night_phone_a.value="609";}
if (form.city.value=="Princeton Junction") {form.zip.value="08560"; form.night_phone_a.value="609";}
if (form.city.value=="Princeton junction") {form.zip.value="08560"; form.night_phone_a.value="609";}
if (form.city.value=="Robbinsville") {form.zip.value="08691"; form.night_phone_a.value="609";}
if (form.city.value=="Sayreville")     {form.zip.value="08872"; form.night_phone_a.value="732";}
if (form.city.value=="Skillman")        {form.zip.value="08558"; form.night_phone_a.value="609";}
if (form.city.value=="Somerset")      {form.zip.value="08873"; form.night_phone_a.value="732";}
if (form.city.value=="West Windsor") {form.zip.value="08850"; form.night_phone_a.value="732";}

if ((form.night_phone_a.value=="732") || (form.night_phone_a.value=="908") || (form.night_phone_a.value=="609")) {document.getElementById("NJ").selected = true;
form.country.value="US"; document.info.night_phone_b.focus(); 
}}

function checkZip(field) {
if (document.info.country.value=="CA") {  
reZip = new RegExp(/^\s*[a-ceghj-npr-tvxy]\d[a-z](\s)?\d[a-z]\d\s*$/i);
if (!reZip.test(field)) { alert('Invalid Canadian postal code.'); 
return false; } return true;  
} else {
var valid = "0123456789-";
var hyphencount = 0;

if (field.length!=5 && field.length!=10) {
alert('Zip format must be: "12345" or "12345-1234" ');
return false; }
for (var i=0; i < field.length; i++) {
temp = "" + field.substring(i, i+1);
if (temp == "-") hyphencount++;
if (valid.indexOf(temp) == "-1") {
alert('Zip format must be: "12345" or "12345-1234"');
return false; }
if ((hyphencount > 1) || ((field.length==10) && ""+field.charAt(5)!="-")) {
alert('Zip format must be: "12345" or "12345-1234"');
return false; }}
return true; }
}

function setCountry(form) {  // onClick state
if ((form.state.value=="AB") || (form.state.value=="BC") || (form.state.value=="NF") || (form.state.value=="MB") || (form.state.value=="NB") ||
(form.state.value=="NS") || (form.state.value=="NT") || (form.state.value=="ON") || (form.state.value=="PE") || (form.state.value=="QC") ||
(form.state.value=="SK") || (form.state.value=="YT")) form.country.value="CA"; else form.country.value="US";
}

cities = new Array(
"Belle Meade",
"Columbus",
"Cranbury",
"Dayton",
"East Brunswick",
"East Windsor",
"Edison",
"Ewing Township",
"Franklin Park",
"Highland Park",
"Hillsborough",
"Jamesburg",
"Kingston",
"Kendall Park",
"Lawrenceville",
"Manville",
"Marlboro",
"Milltown",
"Monmouth Junction",
"Monroe Township",
"New Brunswick",
"North Brunswick",
"Old Bridge",
"Piscataway",
"Plainsboro",
"Princeton",
"Princeton Junction",
"Robbinsville",
"Sayreville",
"Skillman",
"Somerset",
"West Windsor"
);

function Complete(obj, evt) {  // auto-complete city field

if ((!obj) || (!evt) || (cities.length == 0)) { return; }
if (obj.value.length == 0) { return; }
var elm = (obj.setSelectionRange) ? evt.which : evt.keyCode;
if ((elm < 32) || (elm >= 33 && elm <= 46) || (elm >= 112 && elm <= 123)) { return; }

var txt = obj.value.replace(/;/gi, ",");
elm = txt.split(",");
txt = elm.pop();
txt = txt.replace(/^\s*/, "");
if (txt.length == 0) { return; }
if (obj.createTextRange) {
var rng = document.selection.createRange();
if (rng.parentElement() == obj) {
elm = rng.text;
var ini = obj.value.lastIndexOf(elm);
} } else if (obj.setSelectionRange) {
var ini = obj.selectionStart; }

for (var i = 0; i < cities.length; i++) {
elm = cities[i].toString();
if (elm.toLowerCase().indexOf(txt.toLowerCase()) == 0) {
obj.value += elm.substring(txt.length, elm.length);
break; }}
if (obj.createTextRange) {
rng = obj.createTextRange();
rng.moveStart("character", ini);
rng.moveEnd("character", obj.value.length);
rng.select();
} else if (obj.setSelectionRange) {
obj.setSelectionRange(ini, obj.value.length);
}}

function clrzip(form) {  // clear zip and area codes when reselecting city
form.zip.value = " ";
form.night_phone_a.value= " ";
}

function initialCap(field) {   //  Capitalize first letter of text field
field.value = field.value.substr(0, 1).toUpperCase() + field.value.substr(1);
}

function checkEmail(field) {   //  validate email address
if (field.value=="") { return (true) }
if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(field.value)){
return (true) }
alert("Invalid E-mail Address! Please re-enter.")
return (false)

phone = "("+night_phone_a+") "+night_phone_b+"-"+night_phone_c; }

function checkCR(evt) { // prevent CR from sending form data
var evt  = (evt) ? evt : ((event) ? event : null);
var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
if ((evt.keyCode == 13) && (node.type=="text")) {return false;}
}

var Array732 =  new Array("('732','',true,true)",
"('908')","('609')","(' ')");
var Array908 =  new Array("('908','',true,true)",
"('732')","('609')","(' ')");
var Array609 =  new Array("('609','',true,true)",
"('908')","('732')","(' ')");

function populateArea(inForm,selected) {
document.info.phone.focus();
var selectedArray = eval("Array" + selected) ;
while (selectedArray.length < inForm.Area.options.length) {
inForm.Area.options[(inForm.Area.options.length - 1)] = null; }
for (var i=0; i < selectedArray.length; i++) {
eval("inForm.Area.options[i]=" + "new Option" + selectedArray[i]); }
if (inForm.City.options[0].value == '') {
inForm.City.options[0]= null;
if ( navigator.appName == 'Netscape') {
if (parseInt(navigator.appVersion) < 4) {
window.history.go(0);
} else {   	
if (navigator.platform == 'Win32' || navigator.platform == 'Win16') {
window.history.go(0); } } } } }

function checkrequired(which) {
var pass=true;
if (document.images) {
for (i=0;i<which.length;i++) {
var tempobj=which.elements[i];
if (tempobj.name.substring(0,1)=="*") {
if (((tempobj.type=="text"||tempobj.type=="textarea")&&
tempobj.value=='')||(tempobj.type.toString().charAt(0)=="s"&&
tempobj.selectedIndex==0)) {
pass=false; break;
} } } }
if (!pass) {
shortFieldName=tempobj.name.substring(1,30).toUpperCase();
alert("Please make sure the "+shortFieldName+" field was properly completed.");
return false; } else return true;
}

function mailform(color,title,sendto,optext) {
if ((color != "purple") && (color != "green") && (color != "red") && (color != "blue")) {
var name = color 
if ( name == 'end' ) {
document.write('</td><td background="fborderr.gif" width="18"></td></tr><tr><td>');
document.write('<img src="fborderbl.gif" width="18" height="18"></td><td background="fborderb.gif"></td><td>');
document.write('<img src="fborderbr.gif" width="18" height="18"></td></tr></table></form>');
} else {
document.write('<table border="0" cellspacing="0" cellpadding="0" align="center"><tr><td>');
document.write('<img src="fbordertl.gif" width="18" height="18"></td><td background="fbordert.gif"></td><td>');
document.write('<img src="fbordertr.gif" width="18" height="18"></td></tr><tr><td background="fborderl.gif" width="18">');
document.write('</td><td bgcolor="#ffff33"><form method="post" action="/cgi-bin/mail/Mail.cgi" onSubmit="return checkrequired(this)">');
document.write('<input type="hidden" name="env_report" value="REMOTE_HOST,HTTP_USER_AGENT">');
document.write('<input type="hidden" name="print_config" value="email,subject">');
document.write("<input type=hidden name=recipient value='" + name + "@" + "BnaiTikvah.org'>")
}}

else {
if ( title=='end' ) {
document.write(' &#160; <a href="javascript:document.formid'+formid+'.submit();" onmouseout="MM_swapImgRestore()" ');
document.write("onmouseover=\"MM_swapImage('Send"+formid+"','','images/" + color + "_roll_send.gif',1)\">");
var align='left';
if ( sendto == 'right' ) align='right';
document.write('<img align='+align+' class=noprint src="images/'+color+'_send.gif" name="Send'+formid+'" width=58 height=19 border=0 id="Send'+formid+'"></a>');
document.write('</td><td width=9><img src="pixel.gif" height=1 width=9></td><td width=1 background="images/blue-border.gif"><img src="pixel.gif" height=1 width=1></td></tr><tr>');
document.write('<td class=noprint colspan=2><img src="images/blue_bottom_curve_left.gif" width=10 height=10></td>');
document.write('<td class=noprint valign=bottom colspan=3><img src="images/blue-border.gif" height=1 width="100%"></td>');
document.write('<td class=noprint colspan=2><img src="images/blue_bottom_curve_right.gif" width=10 height=10></td></tr></table></form>'); 
} else {
formid = formid + 1
document.write('<form method="post" name=formid'+formid+' action="/cgi-bin/mail/Mail.cgi" onSubmit="return checkrequired(this)">');
document.write('<input type="hidden" name="env_report" value="REMOTE_HOST,HTTP_USER_AGENT">');
document.write('<input type="hidden" name="print_config" value="email">');
document.write("<input type='hidden' name=recipient value='" + sendto + "@" + "BnaiTikvah.org'>");
document.write('<input type="hidden" name="bgcolor" value="white">');
document.write('<table cellspacing=0 cellpadding=0 border=0 class='+color+'bkg><tr>');
document.write('<td colspan=2 width=10 bgcolor=white><img class=noprint src="images/bodynav_' + color + '_left_curve.gif" height=28 width=10></td>');
document.write('<td width=20 background="images/bodynav_'+color+'_bkg.gif" class="title"><span style="padding:0;white-space:nowrap;">' + title + '</span></td>');
document.write('<td bgcolor=white style="padding:0;width:10px"><img class=noprint src="images/bodynav_'+color+'_rt_curve.gif" height=28 width=10></td>');
document.write('<td valign=bottom width=400 bgcolor=white style="text-align:center;border-bottom:1px solid #6295ff">');
if (optext == null)  optext = '&#160;';
document.write(optext+'</td><td width=10 bgcolor=white colspan=2></td></tr><tr>');
document.write('<td width=1 background="images/blue-border.gif"><img src="pixel.gif" height=1 width=1></td>');
document.write('<td width=9></td><td colspan=3></td><td colspan=2 width=10><img class=noprint src="images/blue_top_curve_right.gif" width=10 height=10></td></tr><tr>');
document.write('<td width=1 background="images/blue-border.gif"></td><td width=9></td><td colspan=3>');
} } }

function countLines(strtocount, cols) {
var hard_lines = 1; var last = 0;
while ( true ) { last = strtocount.indexOf("\n", last+1); hard_lines ++; if ( last == -1 ) break; }
var soft_lines = Math.round(strtocount.length / (cols-1));
var hard = eval("hard_lines  " + unescape("%3e") + "soft_lines;");
if ( hard ) soft_lines = hard_lines;
return soft_lines;
}
function cleanForm() {
var the_form = document.forms[0];
for ( var x in the_form ) {
if ( ! the_form[x] ) continue;
if ( typeof the_form[x].rows != "number" ) continue;
the_form[x].rows = countLines(the_form[x].value,the_form[x].cols) +1;
}
setTimeout("cleanForm();", 300);
}

function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
  window.onload = func;
 } else {
window.onload = function() {
if (oldonload) { oldonload(); }
func();
} } }

function formcna(styles,color) {
var cnacolor = "#f0fff0";
if (typeof color != "undefined") cnacolor = color;
if (styles == "print") {
document.write("<table border=0 cellspacing=0 cellpadding=0 style='padding:0 0;margin:0;border:0;'><tr><td align=right>Name</td><td>&nbsp; ");
document.write("<input type=text name='Name' style='width:465px'></td></tr><tr><td align=right >Address</td><td>&nbsp; ");
document.write("<input type=text name='Address' style='width:465px'></td></tr><tr><td align=right>City/State/Zip</td><td>&nbsp; ");
document.write("<select name='City' style='width:232px' onChange='populateArea(document.info,document.info.City.options[document.info.City.selectedIndex].value)'>");
document.write('<option value="732">&#160;<option value="908">Belle Meade, NJ 08502<option value="609">Columbus, NJ 08022');
document.write('<option value="609">Cranbury, NJ 08512<option value="732">Dayton, NJ 08810<option value="732">East Brunswick, NJ 08816');
document.write('<option value="609">East Windsor, NJ 08512');
document.write('<option value="732">Edison, NJ 08817<option value="609">Ewing Township, NJ 08618<option value="732">Franklin Park, NJ 08823');
document.write('<option value="732">Highland Park, NJ 08904<option value="908">Hillsborough, NJ 08844<option value="609">Jamesburg, NJ 08831');
document.write('<option value="732">Kendall Park, NJ 08824<option value="609">Kingston, NJ 08528<option value="609">Lawrenceville, NJ 08648');
document.write('<option value="732">Marlboro, NJ 07746<option value="732">Milltown, NJ 08850<option value="732">Monmouth Junction, NJ 08852');
document.write('<option value="609">Monroe Township, NJ 08831<option value="732">New Brunswick, NJ 08901<option value="732">North Brunswick, NJ 08902');
document.write('<option value="732">Piscataway, NJ 08854<option value="609">Plainsboro, NJ 08536<option value="609">Princeton, NJ 08540');
document.write('<option value="609">Princeton Junction, NJ 08560<option value="609">Robbinsville, NJ 08691<option value="732">Sayreville, NJ 08872');
document.write('<option value="609">Skillman, NJ 08558<option value="732">Somerset, NJ 08873<option value="732">West Windsor, NJ 08550');
document.write('<option value="732">&#160;</select>&#160; &#160; &#160; &#160; &#160; Phone&nbsp;<select name="Area">');
document.write('<option selected value=" "><option>732<option>609<option>908</select><input type="text" name="phone" style="width:116px">');
document.write('</td></tr><tr><td align=right>E-mail</td><td>&#160; <input type=text name="email" style="width:465px"></td></tr></table>');

} else {

if (styles == "email") { 
document.write('<span style="font-family:Arial; font-size:12px;color:'+cnacolor+'">');
} else {
document.write('<span style="font-family:Arial; font-size:12px;'+styles+'">');
}
document.write('<table align=center border=0 cellspacing=0 cellpadding=0><tr><td align=right>');
document.write('<span id="Tp88" class="hint" style="width:448px;background-color:'+cnacolor+';border-color:#404040">');
document.write('<b>When your city appears... &#160;hit the TAB key, enter your phone number and email.</b></span>');

document.write('Name &nbsp;</td><td align=left>');
document.write('<span id="Tp89" class="hint" style="font-size:14px;width:220px;background-color:'+cnacolor+';border-color:#404040">');
document.write('<b>Enter email address to receive<br>confirmation of your payment.</b></span>');
document.write('<input type="text" name="first_name" value="First" style="font-family:Arial; font-size:12px;width:150px" ');
document.write('onfocus="if (this.value==\'First\'){this.value=\'\';};return false;" onblur="{if (this.value==\'\'){this.value=\'First\';return false;}; initialCap(this);}">');    
document.write('<input type="text" name="last_name" style="font-family:Arial;font-size:12px;width:300px" ');
if (styles == "email") { 
document.write(' value="Last" ');
document.write('onfocus="if (this.value==\'Last\'){this.value=\'\';};return false;" ');
document.write('onblur="{if (this.value==\'\'){this.value=\'Last\';return false;}; initialCap(this);}">');
} else {
document.write(' value="Last    (Enter names as if using your credit card.)" ');
document.write('onfocus="if (this.value==\'Last    (Enter names as if using your credit card.)\'){this.value=\'\';};return false;" ');
document.write('onblur="{if (this.value==\'\'){this.value=\'Last    (Enter names as if using a credit card.)\';return false;}; initialCap(this);}">');
}
document.write('</td></tr><tr><td align="right">Address &nbsp;</td><td align=left><input type="text" name="address1" style="font-family:Arial;font-size:12px;width:454px">');
document.write('</td></tr><tr><td align="right">City &nbsp;</td><td align=left><input type="text" name="city"  onmouseout="t_o(88)" onmouseover="t_i(88)" style="font-family:Arial;font-size:12px;width:150px" onSelect="clrzip(this.form)"; ');
document.write('onKeyUp="Complete(this, event)"  onblur="{this.value = this.value.substr(0, 1).toUpperCase() + this.value.substr(1); fillzip(this.form)}">');
document.write(' &#160;&#160;State <select style="font-family:Arial; font-size:12px" name="state" onClick="setCountry(this.form)"><option value="AL">Alabama<option value="AK">Alaska<option value="AZ">Arizona');
document.write('<option value="AR">Arkansas<option value="CA">California<option value="CO">Colorado<option value="CT">Connecticut');
document.write('<option value="DE">Delaware<option value="FL">Florida<option value="GA">Georgia<option value="HI">Hawaii<option value="ID">Idaho');
document.write('<option value="IL">Illinois<option value="IN">Indiana<option value="IA">Iowa<option value="KS">Kansas<option value="KY">Kentucky');
document.write('<option value="LA">Louisiana<option value="ME">Maine<option value="MD">Maryland<option value="MA">Massachusetts');
document.write('<option value="MI">Michigan<option value="MN">Minnesota<option value="MS">Mississippi<option value="MO">Missouri');
document.write('<option value="MT">Montana<option value="NE">Nebraska<option value="NV">Nevada<option value="NH">New Hampshire');
document.write('<option id="NJ" selected value="NJ">New Jersey<option value="NM">New Mexico<option value="NY">New York<option value="NC">North Carolina');
document.write('<option value="ND">North Dakota<option value="OH">Ohio<option value="OK">Oklahoma<option value="OR">Oregon<option value="PA">Pennsylvania');
document.write('<option value="RI">Rhode Island<option value="SC">South Carolina<option value="SD">South Dakota<option value="TN">Tennessee');
document.write('<option value="TX">Texas<option value="UT">Utah<option value="VT">Vermont<option value="VA">Virginia<option value="WA">Washington');
document.write('<option value="WV">West Virginia<option value="WI">Wisconsin<option value="WY">Wyoming<option value=" ">');
document.write('<option value="AB">Alberta<option value="BC">British Columbia<option value="NF">Labrador<option value="MB">Manitoba');
document.write('<option value="NB">New Brunswick<option value="NF">Newfoundland<option value="NS">Nova Scotia<option value="NT">NWT/Nunavut');
document.write('<option value="ON">Ontario<option value="PE">Prince Edward Is.<option value="QC">Quebec<option value="SK">Saskatchewan');
document.write('<option value="YT">Yukon</select> &#160;Zip ');
document.write('<input name="zip" style="font-family:Arial; font-size:12px;width:52px" type="text" onBlur="checkZip(this.value)" maxlength="10"> &#160;Ctry <input type=text name="country" style="font-family:Arial;font-size:12px;width:20px" value=" ">');
document.write('</td></tr><tr><td align="right">Phone &#160;</td><td align=left>');


document.write('<input type=text name="night_phone_a" style="width:25px;font-family:Arial; font-size:12px"');
document.write('onKeyUp="{intOnly(this); return autoTab(this, 3, event);}" maxlength="3">-');
document.write('<input type="text" id="phone" name="night_phone_b" style="width:25px;font-family:Arial; font-size:12px" onKeyUp="{intOnly(this); return autoTab(this, 3, event);}" maxlength="3">');
document.write('-<input type="text" name="night_phone_c" style="width:30px;font-family:Arial; font-size:12px" onKeyUp="{intOnly(this); return autoTab(this, 4, event);}" maxlength="4">');
document.write('<span onmouseout="t_o(89)" onmouseover="t_i(89)">&#160;&#160;&#160;&#160; Email</span> <input type="text" Name="email" style="font-family:Arial;font-size:12px;width:300px" onblur="checkEmail(this)" onmouseout="t_o(89)" onmouseover="t_i(89)"></td></tr></table></span>');
}}



addLoadEvent(function() { cleanForm();} );

document.onkeypress = checkCR;

