

//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

function checkMandatory(argLang, argForm) {

   // checks mandatory fields before supplying them to dl.pl

   var showNames   = new Array();
   var alertString ="";

   if(argLang == "eng") {

      showNames.fornamn = "Förnamn";
      showNames.mi        = "M.I.";
      showNames.efternamn  = "Efternamn";
      showNames.street1   = "Street Address";
      showNames.street2   = "Street Address";
      showNames.city      = "City";
      showNames.state     = "State/Region";
      showNames.zip       = "Zip/Postal Code";
      showNames.subject   = "Ämne";
      showNames.mail      = "E-post";
      showNames.mail     = "Korrekt e-post Adress";
      showNames.meddelande     = "Något Meddelande";
	  showNames.adress     = "Någon Adress";
	  showNames.postnr     = "Något Postnr";
	  showNames.ort     = "Någon Ort";
	  showNames.tel     = "Något Telefonnr";

      alertString = "Du har inte angivit:\n\n";
   }

   var doSubmit = 1;
   var failedFields = new Array();

   if(document.forms[argForm]) {

      if(document.forms[argForm].mandatory) {

         var mand = document.forms[argForm].mandatory.value.split(/,/);

         for(var i=0; i<mand.length; i++) {

            // if the field actually exists
            if(document.forms[argForm].elements[mand[i]]) {

               // reset field colour
               if(document.forms[argForm].elements[mand[i]].className) {

                  document.forms[argForm].elements[mand[i]].className = "formField";
               }

               // do email check
               if(mand[i] == "email" || mand[i] == "mail") {

                  var rxEmail = new RegExp("^[a-zA-Z0-9\.\-_]+[\@][a-zA-Z0-9\-_]+[\.][a-zA-Z0-9\-_]+([\.][a-zA-Z0-9\-_]+)*$");

                  if(!rxEmail.test(document.forms[argForm].elements[mand[i]].value)) {

                     failedFields[failedFields.length] = mand[i];
                  }
                 // do select check
               } else if(document.forms[argForm].elements[mand[i]].type == "select-one") {

                  if(document.forms[argForm].elements[mand[i]].options[document.forms[argForm].elements[mand[i]].selectedIndex].value == "") {

                     failedFields[failedFields.length] = mand[i];
                  }
                 // do general check for any value
               } else if(document.forms[argForm].elements[mand[i]].value == "") {

                  failedFields[failedFields.length] = mand[i];
               }
            } else {

               alert("No field by the name \""+mand[i]+"\" was found.");
               return false;
            }
         }

         if(failedFields.length != 0) {

            doSubmit = 0;

            for(i=0; i<failedFields.length; i++) {

               alertString += showNames[failedFields[i]]+"\n";

               if(document.forms[argForm].elements[failedFields[i]].className != null) {

                  document.forms[argForm].elements[failedFields[i]].className = "formError";
               }
            }
         }
      }
   } else {

      alert("No form by the name \""+argForm+"\" was found.");
      return false;
   }

   if(doSubmit == 1) {

      return true;

   } else {

      if(document.forms[argForm].elements[failedFields[0]].type != "hidden") {

         document.forms[argForm].elements[failedFields[0]].focus();
      }

      alert(alertString);
      return false;
   }
}

//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

