// description    @(#) sfjava.js  -  common java functions
// language       JavaScript
// author         rob kaal
// copyright      © 2005-2010 - Softec BV - Amstelveen
// version        1.0   2005/10/07 - adapted from sf_js_library
//                1.1   2008/12/10 - added JsPopUp (to establish viewing catalogs)

// helpers
function SkipWhiteSpace(hObj)
   {
   return(hObj.value.replace(/\s/g, ""));
   }

function IfIsNull(hObj)
   {
   if (hObj.length == 0)
      return(true);
   return(false);
   }

// end of helpers

function JsShowError(iErr)
   {
   switch (iErr)
      {
      case 1:
         alert("ingave is niet numeriek, herstel de invoer.");
         break;
      case 2:
         alert("ingave is geen geheel getal, herstel de invoer.");
         break;
      case 3:
         alert("ingave is negatief, herstel de invoer.");
         break;
      default:
         break;
      }
   return;
   }

function JsSilentUInt(hObj)  // unsigned int or null (skip whitespace and dots)
   {
   var   sPatInt=/^-?\d*$/;
   var   sPatUInt=/^\d*$/;
   hObj.value=hObj.value.replace(/\s/g, "");
// geen punten weghalen!!   hObj.value=hObj.value.replace(/\./g, "");
   if (!(sPatInt.test(hObj.value)))
      {
      if (sPatInt.test(hObj.value.replace(/\./g, "")))
         return (2);
      if (sPatInt.test(hObj.value.replace(/\,/g, "")))
         return (2);
      return (1);
      }
   if (!sPatUInt.test(hObj.value))
      return (3);
   return (0);
   }

function JsCheckUInt(hObj)  // unsigned int or null (skip whitespace and dots)
   {
   var   iErr;
   iErr=JsSilentUInt(hObj);
   if (iErr == 0)
      return true;
   JsShowError(iErr);
//   var hObj3=document.getElementById(hObj.id);
//   alert("de id van het object .... " + hObj3.id);
   hObj.focus();
   return false;
   }

function JsCheckEmail(hObj)  // valid e-mail or null (skip whitespace)
   {
   var   sPatEmail=/^\w+@\w+\.\w{1,4}$/;
   hObj.value=hObj.value.replace(/\./g, "");
   if (!(sPatEmail.test(hObj.value)))
      {
      alert(hObj.alt + ": niet correct, herstel de invoer.");
      hObj.focus();
      return(false);
      }
   return(true);
   }

function JsCheckPstCode(hObj)  // valid postcode (whitespace not skipped)
   {
   var   sPatPstCod=/^[1-9]{1}[0-9]{3} ?[A-Za-z]{2}$/;
   if (!(sPatPstCod.test(hObj.value)))
      {
      alert(hObj.alt + ": niet correct, herstel de invoer.");
      hObj.focus();
      return(false);
      }
   return(true);
   }

function JsCopyValue(hObjFrom, hObjTo)  // copy value from one object to another
   {
   if (hObjTo.value.length == 0) 
      hObjTo.value=hObjFrom.value;
   return;
   }

function JsCopyRadio(hObjFrom, hObjTo, hObjCheck)  // copy checked radiobutton
   {
   if (hObjCheck.value.length == 0)
      { 
      var   numradios=hObjFrom.length;
      for   (var i=0; i<numradios; i++)
         {
         if (hObjFrom[i].checked)
            {
            hObjTo[i].click();
            break;
            }
         }
      }
   return;
   }

function JsClearAndFocus(hObj)            // clear item & focus
   {
   hObj.value="";
   hObj.focus();
   return;
   }

function JsTrue(hObj)                  // return TRUE
   {
   alert(hObj.alt + ": het is helemaal goed.");
   return(true);
   }

function JsFalse(hObj)                 // return FALSE
   {
   alert(hObj.alt + ": het is compleet fout.");
   return(false);
   }

function JsObject()
   {
   var hNames=document.getElementsByName('V1');
   for (var i=0; i < hNames.length; i++)
      hNames.item(i).focus();
   return(true);
   }

// start script specific

function ShowartFormCheck(hObj)
   {
   var   iAantal=0;
   var   hObj2, hObj3, hObj4;
   var j=hObj.length;
   for(var i=0; i < j; i++)
      {
      hObj2=hObj.elements[i];
      switch(hObj2.type)
         {
         case "select-one":
            hObj3=document.getElementById(hObj2.id.replace(/K/, "V"));
            if (hObj2.value == 0)
               {
               if (hObj3)
                  {
                  if (JsSilentUInt(hObj3) == 0)
                     {
                     if (hObj3.value == "" || parseInt(hObj3.value) == 0)
                        break;
                     else
                        {
                        alert("bij dit artikel moet u een kleur selecteren!");
                        hObj2.focus();
                        return false;
                        }
                     }   
                  }
               }
            if (iAantal != 2)
               {
               if (hObj3)
                  {
                  if (JsSilentUInt(hObj3) == 0)
                     {
                     if (hObj3.value == "" || parseInt(hObj3.value) == 0)
                        {
                        alert(" focus set " + i);
                        iAantal=1;
                        hObj4=hObj3;
                        }
                     }
                  }
               }
            break;
         case "text":
            if (iAantal == 0)
               {
               iAantal=1;
               hObj4=hObj2;
               }
            if (!(hObj2.value == "" || parseInt(hObj2.value) == 0))
               iAantal=2;
            var iErr=JsSilentUInt(hObj2);
            if (iErr != 0)
               {
               JsShowError(iErr);
               hObj2.focus();
               return false;
               }
            break;
         default:
            break;
         }
      }
//   if (iAantal == 1)
//      {
//      alert("Er kan niets worden opgenomen in de winkelwagen omdat u nergens een aantal heeft ingegeven.");
//      hObj4.focus();
//      return false;
//      }
   return true;
   }

function ShowwarFormCheck(hObj)
   {
   return true;
   }

