// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// SRC="MAG_recipe.js"
// Application: maggiesattic.us
//
// Copyright 2007-2010, brymar.net - All rights reserved.
// Copyright 2007-2010  Maggie's Attic of Florida. All rights reserved.
//

//
//
function showE(imgElem){document.getElementById(imgElem).style.display = "inline"}
function hideE(imgElem){document.getElementById(imgElem).style.display = "none"}
//
theC = "#0000aa"
iniC = "#888888"
iniFld = new Array()
iniFld[0] = "Enter recipe title here."
iniFld[1] = "List your ingredients here (you can cut & paste text);\nPut each item on a new line,\nUse abbreviations such as:\n   C - cup(s)\n   tsp - teaspoon(s)\n   Tbs - tablespoon(s),\n   pkg - package(s)\n   oz - ounce(s)"
iniFld[2] = "Enter your preparation instructions here \n(you can cut & paste text)."
iniFld[3] = "Make any special or additional notes here.\n* Optional"
iniFld[4] = "Enter first name"
iniFld[5] = "Enter last name"
iniFld[6] = "Enter your e-mail address"
iniFld[7] = "Enter City"
iniFld[8] = "Make note of your favorite wine with the recipe.\n* Optional"
iniFld[9] = "Select State"
//
focusFld = new Array()
focusFld[0] = 0   // title
focusFld[1] = 0   // ingredients
focusFld[2] = 0   // directions
focusFld[3] = 0   // notes *optional
focusFld[4] = 0   // first name
focusFld[5] = 0   // last name
focusFld[6] = 0   // e-mail
focusFld[7] = 0   // city
focusFld[8] = 0   // wine notes *optional
focusFld[9] = 0   // state
flds = "tit/ing/dir/nts/fna/lna/ema/cit/wnt/sta/"
//
//
function iniV(){document.getElementById('tit').value = iniFld[0];
                document.getElementById('ing').value = iniFld[1];
                document.getElementById('dir').value = iniFld[2];
                document.getElementById('nts').value = iniFld[3];
                document.getElementById('fna').value = iniFld[4];
                document.getElementById('lna').value = iniFld[5];
                document.getElementById('ema').value = iniFld[6];
                document.getElementById('cit').value = iniFld[7];
                document.getElementById('wnt').value = iniFld[8];
                document.getElementById('sta').options[0].text = iniFld[9];
                document.getElementById('sta').options[0].selected = 1
                 }
// function for "reset" button
function iniVr(){document.getElementById('tit').value = iniFld[0]; focusFld[0] = 0;
                 document.getElementById('tit').style.color = iniC;
                 document.getElementById('ing').value = iniFld[1]; focusFld[1] = 0;
                 document.getElementById('ing').style.color = iniC;
                 document.getElementById('dir').value = iniFld[2]; focusFld[2] = 0;
                 document.getElementById('dir').style.color = iniC;
                 document.getElementById('nts').value = iniFld[3]; focusFld[3] = 0;
                 document.getElementById('nts').style.color = iniC;
                 document.getElementById('fna').value = iniFld[4]; focusFld[4] = 0;
                 document.getElementById('fna').style.color = iniC;
                 document.getElementById('lna').value = iniFld[5]; focusFld[5] = 0;
                 document.getElementById('lna').style.color = iniC;
                 document.getElementById('ema').value = iniFld[6]; focusFld[6] = 0;
                 document.getElementById('ema').style.color = iniC;
                 document.getElementById('cit').value = iniFld[7]; focusFld[7] = 0;
                 document.getElementById('cit').style.color = iniC;
                 document.getElementById('wnt').value = iniFld[8]; focusFld[8] = 0;
                 document.getElementById('wnt').style.color = iniC;
                 document.getElementById('sta').options[0].selected = 1; focusFld[9] = 0;
                 document.getElementById('sta').style.color = iniC;
                 document.getElementById('non').checked = false;
                 document.getElementById('lst').checked = false;
                 }
//
function norC(elmID){document.getElementById(elmID).style.color = theC;
                     fldNo = flds.indexOf(elmID);
                     if(fldNo > 0){fldNo = fldNo/4};
                     if(focusFld[fldNo] == 1){return};
                     focusFld[fldNo] = 1;
                     document.getElementById(elmID).value = "";}
function selC(elmID){document.getElementById(elmID).style.color = theC;
                     fldNo = flds.indexOf(elmID);
                     if(fldNo > 0){fldNo = fldNo/4};
                     focusFld[fldNo] = 1; }
//
//
function snapIt(fld){fld.focus(); fld.select()}
function snapItSta(fld){fld.focus(); fld.options[0].selected = 1}
//
function dsplyErr(errN){if(!errN){return}; alert(errMsg[errN])}
errMsg = new Array()
errMsg[0] = "Unknown error, please start over."
errMsg[1] = "Please enter recipe title."
errMsg[2] = "Please enter enter your ingredients."
errMsg[3] = "Please enter your directions."
errMsg[4] = "Name field is required."
errMsg[5] = "E-mail address field is required."
errMsg[6] = "E-mail address appears incorrect, please re-enter."
errMsg[7] = "Please enter a phone number."
errMsg[8] = "Please enter a valid phone number.\n(nnn-nnn-nnnn)"
errMsg[9] = "First name field required."
errMsg[10] = "Last name field required."
errMsg[11] = "Please enter your city."
errMsg[12] = "Please provide area code and phone number."
errMsg[13] = "Please enter your state."
//
//
// global variables
goodPh = " 0123456789-().:xet"
whoto = "i3recipeshare"
CRLF = "\r\n"
yesPost = "N/A"  // Post my first name and city.
noPost = "Do Not Post my first name and city."
yesList = "Please include me in Maggie's mail list."
noList = "N/A"
//
// >>>>>>>> Begin validation of recipe form <<<<<<<<<<<
function valishare(share){errCode=0;
                  if(!share.recipetitle.value || focusFld[0] == 0){
                  dsplyErr(1); snapIt(share.recipetitle); return false};
                  if(!share.ingredients.value || focusFld[1] == 0){
                  dsplyErr(2); snapIt(share.ingredients); return false};
                  if(!share.directions.value || focusFld[2] == 0){
                  dsplyErr(3); snapIt(share.directions); return false};
                  if(!share.Fname.value || focusFld[4] == 0){
                  dsplyErr(9); snapIt(share.Fname); return false};
                  if(!share.Lname.value || focusFld[5] == 0){
                  dsplyErr(10); snapIt(share.Lname); return false};
                  val_Email(share.email.value);
                  if(errCode){dsplyErr(errCode); snapIt(share.email); return false};
                  //val_Phone(share.phone.value);
                  //if(errCode){dsplyErr(errCode); snapIt(share.phone); return false};
                  if(!share.city.value || focusFld[7] == 0){
                  dsplyErr(11); snapIt(share.city); return false};
                  if(share.state.selectedIndex == 0 || focusFld[9] == 0){
                  dsplyErr(13); snapItSta(share.state); return false};
                  // form validated, finish form.
                  share.ingredients.value = CRLF.concat(share.ingredients.value);
                  share.directions.value = CRLF.concat(share.directions.value);
                  if(!focusFld[3]){share.notes.value = ""};
                  if(share.notes.value){share.notes.value = CRLF.concat(share.notes.value)};
                  if(!focusFld[8]){share.wine.value = ""};
                  if(share.wine.value){share.wine.value = CRLF.concat(share.wine.value)};
                  if(share.noname.checked){
                  share.nopost.value = noPost} else {share.nopost.value = yesPost};
                  if(!share.emlist.checked){
                  share.incldem.value = noList} else {share.incldem.value = yesList};
                  share.recipient.value = whoto.substr(2).concat("@maggiesattic.us");
                  return true} // false
//
function val_Email(ckaddr){badStuff = " /:,;"; i=0; errCode=0;
                   if(!ckaddr || focusFld[6] == 0){errCode=5; return false};
                   while(i < badStuff.length){badChar = badStuff.charAt(i); i++;
                   if(ckaddr.indexOf(badChar) > -1){errCode = 6; return }};
                   at = ckaddr.indexOf("@", 1); if(at <= 0){errCode = 6; return };
                   dot = ckaddr.indexOf(".", at); if(dot < 0){errCode = 6; return };
                   ln = ckaddr.length; if(dot == ln - 2){errCode = 6;  return };
                   return}
//
function val_Phone(ckPh){errCode=0; k=0; j=0; nn=0; ex=0;
                   if(!ckPh){errCode=7; return};
                   if(ckPh.length < 10){errCode=12; return};  // no area code
                   if(ckPh.length < 7){errCode=8; return};
                   while(k < ckPh.length){if(goodPh.indexOf(ckPh.charAt(k), 0) < 0)
                   // set flag & break if non-allowable chars found
                   {errCode = 8; break}; k++};
                   return}
//
// --------------------------------------------------------------------------------------



