      function validateNum(str, len) 
      {
         var valid = "0123456789"; if (str.length < len) { return false; }; for (var i=0; i < str.length; i++) { temp = "" + str.substring(i, i+1); if (valid.indexOf(temp) == "-1") { return false; } }; return true;
      }
      function validateZIP(zip) 
      {
         var valid = "0123456789-"; var hyphencount = 0;
         if (zip.length!=5 && zip.length!=10) { return("Please enter your 5 digit or 5 digit+4 zip code."); }
         for (var i=0; i < zip.length; i++) 
         {
            temp = "" + zip.substring(i, i+1); if (temp == "-") hyphencount++;
            if (valid.indexOf(temp) == "-1") { return("Invalid characters in your zip code.  Please try again."); }
            if ((hyphencount > 1) || ((zip.length==10) && ""+zip.charAt(5)!="-")) { return("The hyphen character should be used with a properly formatted 5 digit+four zip code, like '12345-6789'.   Please try again."); }
         }
         return true;
      }
      function validateMail(val)
      {
         var str = val; var at="@"; var dot="."; var lat=str.indexOf(at); var lstr=str.length; var ldot=str.indexOf(dot);
         if (str.indexOf(at)==-1) { return("Please&nbsp;enter valid&nbsp;email&nbsp;address"); }
         if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){ return("Please enter valid email address"); }
         if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){ return("Please enter valid email address"); }
         if (str.indexOf(at,(lat+1))!=-1){ return("Please enter valid email address"); }
         if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){ return("Please enter valid email address"); }
         if (str.indexOf(dot,(lat+2))==-1){ return("Please enter valid email address"); }
         if (str.indexOf(" ")!=-1){ return("Please enter valid email address"); }
         return '';		
      }
      
      function window_popup(url, top, left, width, heigth)
      {
         winFeatures = "toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=yes,screenX="+left+",screenY="+top+",left="+left+",top="+top+",height="+heigth+",width="+width;
         PopUpWindow=window.open(url,"PopUpWindow",winFeatures); PopUpWindow.focus();
      }

      function validateText(form_nm, fld_nm) 
      {
         var field = eval('document.' + form_nm + '.' + fld_nm); if (!field) { return ''; }
         var str = (field.id && field.id.length) ? field.id : 'missing fields'; if (!field || field.value == '' || field.value.length <= 0) { return('Please fill out ' + str); } return('');
      }
      
      function validatePassword(form_nm, fld_nm)
      {
         var field = eval('document.' + form_nm + '.' + fld_nm); var re = /[0-9a-zA-Z]/;
         if (field.value.length == 0) { return("Password cannot be empty"); }
         for (var i=0; i < field.value.length; i++) { temp = "" + field.value.substring(i, i+1); if (!re.exec(temp)) { return("Password can only contain letters and numbers (" + field.value + ")"); } }
         return '';
      }
            
      function validateFloat(str) { var valid = '0123456789.';  if (str.length <= 0) { return 'Invalid Number'; } for (var i=0; i < str.length; i++) { temp = "" + str.substring(i, i+1); if (valid.indexOf(temp) == "-1") { return 'Invalid Number'; } }; return ''; }
      
      function validateState(f, name) { var field = eval('document.'+ f+ '.' + name);  var str = (field.id && field.id.length) ? field.id : 'missing state'; if (field.options[field.selectedIndex].value == 'x') { return('Select ' + str); } return ''; }
      function check_country(f, name) { var field = eval('document.'+ f+ '.' + name); return field.options[field.selectedIndex].value; }
      
      function validateSearch(str)
      {
         var re = /[0-9a-zA-Z\-\s]/;
         if (str.length == 0 || str.substr(0,5) == "Enter") { return("Enter item number or search keyword"); }
         for (var i=0; i < str.length; i++) { temp = "" + str.substring(i, i+1); if (!re.exec(temp)) { return("Search keyword can only contain letters and numbers (" + str + ")"); } }
         return '';
      }
