





function validateFloatRange(form) {
        var isValid = true;
        var focusField = null;
        var i = 0;
        var fields = new Array();
        oRange = new floatRange();
        for (x in oRange) {
          var field = form[oRange[x][0]];
          
          if ((field.type == 'text' ||
             field.type == 'textarea') &&
            (field.value.length > 0)) {
            
            var fMin = parseFloat(oRange[x][2]("min"));
            var fMax = parseFloat(oRange[x][2]("max"));
            var fValue = parseFloat(field.value);
            if (!(fValue >= fMin && fValue <= fMax)) {
              if (i == 0) {
                focusField = field;
              }
              fields[i++] = oRange[x][1];
              isValid = false;
            }
          }
        }
        if (fields.length > 0) {
          focusField.focus();
          alert(fields.join('\n'));
        }
        return isValid;
      }
function validateByte(form) {
        var bValid = true;
        var focusField = null;
        var i = 0;
        var fields = new Array();
        oByte = new ByteValidations();
        for (x in oByte) {
          var field = form[oByte[x][0]];
          
          if (field.type == 'text' ||
            field.type == 'textarea' ||
            field.type == 'select-one' ||
            field.type == 'radio') {

            var value = '';
            // get field's value
            if (field.type == "select-one") {
              var si = field.selectedIndex;
              if (si >= 0) {
                value = field.options[si].value;
              }
            } else {
              value = field.value;
            }
            
            if (value.length > 0) {
              if (!isAllDigits(value)) {
                bValid = false;
                if (i == 0) {
                  focusField = field;
                }
                fields[i++] = oByte[x][1];

              } else {

                var iValue = parseInt(value);
                if (isNaN(iValue) || !(iValue >= -128 && iValue <= 127)) {
                  if (i == 0) {
                    focusField = field;
                  }
                  fields[i++] = oByte[x][1];
                  bValid = false;
                }
              }
            }
            
          }
        }
        if (fields.length > 0) {
           focusField.focus();
           alert(fields.join('\n'));
        }
        return bValid;
      }
function validateMaxLength(form) {
        var isValid = true;
        var focusField = null;
        var i = 0;
        var fields = new Array();
        oMaxLength = new maxlength();
        for (x in oMaxLength) {
          var field = form[oMaxLength[x][0]];
          
          if (field.type == 'text' ||
            field.type == 'textarea') {
            
            var iMax = parseInt(oMaxLength[x][2]("maxlength"));
            if (field.value.length > iMax) {
              if (i == 0) {
                focusField = field;
              }
              fields[i++] = oMaxLength[x][1];
              isValid = false;
            }
          }
        }
        if (fields.length > 0) {
           focusField.focus();
           alert(fields.join('\n'));
        }
        return isValid;
      }
function validateRequired(form) {
        var isValid = true;
        var focusField = null;
        var i = 0;
        var fields = new Array();
        oRequired = new required();
        for (x in oRequired) {
          var field = form[oRequired[x][0]];
          
          if (field.type == 'text' ||
            field.type == 'textarea' ||
            field.type == 'file' ||
            field.type == 'select-one' ||
            field.type == 'radio' ||
            field.type == 'password') {
            
            var value = '';
            // get field's value
            if (field.type == "select-one") {
              var si = field.selectedIndex;
              if (si >= 0) {
                value = field.options[si].value;
              }
            } else {
              value = field.value;
            }
            
            if (trim(value).length == 0) {
            
              if (i == 0) {
                focusField = field;
              }
              fields[i++] = oRequired[x][1];
              isValid = false;
            }
          }
        }
        if (fields.length > 0) {
           focusField.focus();
           alert(fields.join('\n'));
        }
        return isValid;
      }
      
      // Trim whitespace from left and right sides of s.
      function trim(s) {
        return s.replace( /^\s*/, "" ).replace( /\s*$/, "" );
      }
function validateInteger(form) {
        var bValid = true;
        var focusField = null;
        var i = 0;
        var fields = new Array();
        oInteger = new IntegerValidations();
        for (x in oInteger) {
          var field = form[oInteger[x][0]];

          if (field.type == 'text' ||
            field.type == 'textarea' ||
            field.type == 'select-one' ||
            field.type == 'radio') {
            
            var value = '';
            // get field's value
            if (field.type == "select-one") {
              var si = field.selectedIndex;
              if (si >= 0) {
                value = field.options[si].value;
              }
            } else {
              value = field.value;
            }
            
            if (value.length > 0) {
            
              if (!isAllDigits(value)) {
                bValid = false;
                if (i == 0) {
                  focusField = field;
                }
                fields[i++] = oInteger[x][1];
                
              } else {
                var iValue = parseInt(value);
                if (isNaN(iValue) || !(iValue >= -2147483648 && iValue <= 2147483647)) {
                  if (i == 0) {
                    focusField = field;
                  }
                  fields[i++] = oInteger[x][1];
                  bValid = false;
                 }
               }
             }
          }
        }
        if (fields.length > 0) {
           focusField.focus();
           alert(fields.join('\n'));
        }
        return bValid;
      }

      function isAllDigits(argvalue) {
        argvalue = argvalue.toString();
        var validChars = "0123456789";
        var startFrom = 0;
        if (argvalue.substring(0, 2) == "0x") {
           validChars = "0123456789abcdefABCDEF";
           startFrom = 2;
        } else if (argvalue.charAt(0) == "0") {
           validChars = "0123456789";
           startFrom = 1;
        } else if (argvalue.charAt(0) == "-") {
          startFrom = 1;
        }
        
        for (var n = startFrom; n < argvalue.length; n++) {
          if (validChars.indexOf(argvalue.substring(n, n+1)) == -1) return false;
        }
        return true;
      }
function validateRange(form) {
        return validateIntRange(form);
      }
function validateCreditCard(form) {
        var bValid = true;
        var focusField = null;
        var i = 0;
        var fields = new Array();
        oCreditCard = new creditCard();
        for (x in oCreditCard) {
          if ((form[oCreditCard[x][0]].type == 'text' ||
             form[oCreditCard[x][0]].type == 'textarea') &&
            (form[oCreditCard[x][0]].value.length > 0)) {
            if (!luhnCheck(form[oCreditCard[x][0]].value)) {
              if (i == 0) {
                focusField = form[oCreditCard[x][0]];
              }
              fields[i++] = oCreditCard[x][1];
              bValid = false;
            }
          }
        }
        if (fields.length > 0) {
          focusField.focus();
          alert(fields.join('\n'));
        }
        return bValid;
      }

      /**
       * Reference: http://www.ling.nwu.edu/~sburke/pub/luhn_lib.pl
       */
      function luhnCheck(cardNumber) {
        if (isLuhnNum(cardNumber)) {
          var no_digit = cardNumber.length;
          var oddoeven = no_digit & 1;
          var sum = 0;
          for (var count = 0; count < no_digit; count++) {
            var digit = parseInt(cardNumber.charAt(count));
            if (!((count & 1) ^ oddoeven)) {
              digit *= 2;
              if (digit > 9) digit -= 9;
            };
            sum += digit;
          };
          if (sum == 0) return false;
          if (sum % 10 == 0) return true;
        };
        return false;
      }

      function isLuhnNum(argvalue) {
        argvalue = argvalue.toString();
        if (argvalue.length == 0) {
          return false;
        }
        for (var n = 0; n < argvalue.length; n++) {
          if ((argvalue.substring(n, n+1) < "0") ||
            (argvalue.substring(n,n+1) > "9")) {
            return false;
          }
        }
        return true;
      }
function validateDate(form) {
         var bValid = true;
         var focusField = null;
         var i = 0;
         var fields = new Array();
         oDate = new DateValidations();
         for (x in oDate) {
           var value = form[oDate[x][0]].value;
           var datePattern = oDate[x][2]("datePatternStrict");
           if ((form[oDate[x][0]].type == 'text' ||
            form[oDate[x][0]].type == 'textarea') &&
             (value.length > 0) &&
             (datePattern.length > 0)) {
           var MONTH = "MM";
           var DAY = "dd";
           var YEAR = "yyyy";
           var orderMonth = datePattern.indexOf(MONTH);
           var orderDay = datePattern.indexOf(DAY);
           var orderYear = datePattern.indexOf(YEAR);
           if ((orderDay < orderYear && orderDay > orderMonth)) {
             var iDelim1 = orderMonth + MONTH.length;
             var iDelim2 = orderDay + DAY.length;
             var delim1 = datePattern.substring(iDelim1, iDelim1 + 1);
             var delim2 = datePattern.substring(iDelim2, iDelim2 + 1);
             if (iDelim1 == orderDay && iDelim2 == orderYear) {
              dateRegexp = new RegExp("^(\\d{2})(\\d{2})(\\d{4})$");
             } else if (iDelim1 == orderDay) {
              dateRegexp = new RegExp("^(\\d{2})(\\d{2})[" + delim2 + "](\\d{4})$");
             } else if (iDelim2 == orderYear) {
              dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})(\\d{4})$");
             } else {
              dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{4})$");
             }
             var matched = dateRegexp.exec(value);
             if(matched != null) {
              if (!isValidDate(matched[2], matched[1], matched[3])) {
                 if (i == 0) {
                   focusField = form[oDate[x][0]];
                 }
                 fields[i++] = oDate[x][1];
                 bValid =  false;
              }
             } else {
              if (i == 0) {
                focusField = form[oDate[x][0]];
              }
              fields[i++] = oDate[x][1];
              bValid =  false;
             }
           } else if ((orderMonth < orderYear && orderMonth > orderDay)) {
             var iDelim1 = orderDay + DAY.length;
             var iDelim2 = orderMonth + MONTH.length;
             var delim1 = datePattern.substring(iDelim1, iDelim1 + 1);
             var delim2 = datePattern.substring(iDelim2, iDelim2 + 1);
             if (iDelim1 == orderMonth && iDelim2 == orderYear) {
               dateRegexp = new RegExp("^(\\d{2})(\\d{2})(\\d{4})$");
             } else if (iDelim1 == orderMonth) {
               dateRegexp = new RegExp("^(\\d{2})(\\d{2})[" + delim2 + "](\\d{4})$");
             } else if (iDelim2 == orderYear) {
               dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})(\\d{4})$");
             } else {
               dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{4})$");
             }
             var matched = dateRegexp.exec(value);
             if(matched != null) {
               if (!isValidDate(matched[1], matched[2], matched[3])) {
                 if (i == 0) {
                   focusField = form[oDate[x][0]];
                 }
                 fields[i++] = oDate[x][1];
                 bValid =  false;
                }
             } else {
               if (i == 0) {
                 focusField = form[oDate[x][0]];
               }
               fields[i++] = oDate[x][1];
               bValid =  false;
             }
           } else if ((orderMonth > orderYear && orderMonth < orderDay)) {
             var iDelim1 = orderYear + YEAR.length;
             var iDelim2 = orderMonth + MONTH.length;
             var delim1 = datePattern.substring(iDelim1, iDelim1 + 1);
             var delim2 = datePattern.substring(iDelim2, iDelim2 + 1);
             if (iDelim1 == orderMonth && iDelim2 == orderDay) {
               dateRegexp = new RegExp("^(\\d{4})(\\d{2})(\\d{2})$");
             } else if (iDelim1 == orderMonth) {
               dateRegexp = new RegExp("^(\\d{4})(\\d{2})[" + delim2 + "](\\d{2})$");
             } else if (iDelim2 == orderDay) {
               dateRegexp = new RegExp("^(\\d{4})[" + delim1 + "](\\d{2})(\\d{2})$");
             } else {
               dateRegexp = new RegExp("^(\\d{4})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{2})$");
             }
             var matched = dateRegexp.exec(value);
             if(matched != null) {
               if (!isValidDate(matched[3], matched[2], matched[1])) {
                 if (i == 0) {
                   focusField = form[oDate[x][0]];
                  }
                  fields[i++] = oDate[x][1];
                  bValid =  false;
                }
              } else {
                if (i == 0) {
                  focusField = form[oDate[x][0]];
                }
                fields[i++] = oDate[x][1];
                bValid =  false;
              }
           } else {
             if (i == 0) {
               focusField = form[oDate[x][0]];
             }
             fields[i++] = oDate[x][1];
             bValid =  false;
           }
          }
         }
         if (fields.length > 0) {
          focusField.focus();
          alert(fields.join('\n'));
         }
         return bValid;
      }

    function isValidDate(day, month, year) {
      if (month < 1 || month > 12) {
          return false;
        }
        if (day < 1 || day > 31) {
          return false;
        }
        if ((month == 4 || month == 6 || month == 9 || month == 11) &&
          (day == 31)) {
          return false;
        }
        if (month == 2) {
          var leap = (year % 4 == 0 &&
                 (year % 100 != 0 || year % 400 == 0));
          if (day>29 || (day == 29 && !leap)) {
            return false;
          }
        }
        return true;
      }
function validateIntRange(form) {
        var isValid = true;
        var focusField = null;
        var i = 0;
        var fields = new Array();
        oRange = new intRange();
        for (x in oRange) {
          var field = form[oRange[x][0]];
          
          if ((field.type == 'text' ||
             field.type == 'textarea') &&
            (field.value.length > 0)) {
            
            var iMin = parseInt(oRange[x][2]("min"));
            var iMax = parseInt(oRange[x][2]("max"));
            var iValue = parseInt(field.value);
            if (!(iValue >= iMin && iValue <= iMax)) {
              if (i == 0) {
                focusField = field;
              }
              fields[i++] = oRange[x][1];
              isValid = false;
            }
          }
        }
        if (fields.length > 0) {
          focusField.focus();
          alert(fields.join('\n'));
        }
        return isValid;
      }
function validateEnglish(form) {
          var bValid = true;
          var focusField = null;
          var i = 0;
          var sum = 0
          var fields = new Array();
          oEng = new english();
          for (x in oEng) {
            if ((form[oEng[x][0]].type == 'text' ||
                 form[oEng[x][0]].type == 'textarea') &&
                (form[oEng[x][0]].value.length > 0)) {
              if (!isAllEnglish(form[oEng[x][0]].value)) {
                if (i == 0) {
                  focusField = form[oEng[x][0]];
                }
                fields[i++] = oEng[x][1];
                bValid = false;
              }
            }
          }

          if (fields.length > 0) {
            focusField.focus();
            alert(fields.join('\n'));
          }
          
          return bValid;
        }

        function isAllEnglish(eng) {
          var pattern = /^[a-zA-Z ]+$/;
          for(i=0 ; i < eng.length; i++) {          
            if (!pattern.test(eng.charAt(i))) {
              return false;
            }
          }
          return true;    
        }
function validateRegistrationNumber(form) {
          var bValid = true;
          var focusField = null;
          var i = 0;
          var sum = 0
          var fields = new Array();
          oRegNO = new registrationNumber();
          for (x in oRegNO) {
            if ((form[oRegNO[x][0]].type == 'text' ||
                 form[oRegNO[x][0]].type == 'textarea') &&
                (form[oRegNO[x][0]].value.length > 0)) {
              if (!checkRegistrationNumber(form[oRegNO[x][0]].value)) {
                if (i == 0) {
                  focusField = form[oRegNO[x][0]];
                }
                fields[i++] = oRegNO[x][1];
                bValid = false;
              }
            }
          }

          if (fields.length > 0) {
            focusField.focus();
            alert(fields.join('\n'));
          }

          return bValid;
        }

        function checkRegistrationNumber(regNo){
          if (regNo.length == 13) {
            A = regNo.charAt(0);
            B = regNo.charAt(1);
            C = regNo.charAt(2);
            D = regNo.charAt(3);
            E = regNo.charAt(4);
            F = regNo.charAt(5);
            G = regNo.charAt(6);
            H = regNo.charAt(7);
            I = regNo.charAt(8);
            J = regNo.charAt(9);
            K = regNo.charAt(10);
            L = regNo.charAt(11);
            Osub = regNo.charAt(12);
  
            SUMM = A*2 + B*3 + C*4 + D*5+ E*6+ F*7+G*8+H*9+I*2+J*3+K*4+L*5;
            N = SUMM % 11;
            Modvalue = 11 - N;
            LastVal =  Modvalue % 10 ;
            
            if(LastVal != Osub) return false;
            else return true;
          } else {
            return false;
          }
        }
function validateShort(form) {
        var bValid = true;
        var focusField = null;
        var i = 0;
        var fields = new Array();
        oShort = new ShortValidations();
        for (x in oShort) {
          var field = form[oShort[x][0]];
          
          if (field.type == 'text' ||
            field.type == 'textarea' ||
            field.type == 'select-one' ||
            field.type == 'radio') {
            
            var value = '';
            // get field's value
            if (field.type == "select-one") {
              var si = field.selectedIndex;
              if (si >= 0) {
                value = field.options[si].value;
              }
            } else {
              value = field.value;
            }
            
            if (value.length > 0) {
              if (!isAllDigits(value)) {
                bValid = false;
                if (i == 0) {
                  focusField = field;
                }
                fields[i++] = oShort[x][1];

              } else {
            
                var iValue = parseInt(value);
                if (isNaN(iValue) || !(iValue >= -32768 && iValue <= 32767)) {
                  if (i == 0) {
                    focusField = field;
                  }
                  fields[i++] = oShort[x][1];
                  bValid = false;
                }
               }
             }
          }
        }
        if (fields.length > 0) {
           focusField.focus();
           alert(fields.join('\n'));
        }
        return bValid;
      }
function validateFloat(form) {
        var bValid = true;
        var focusField = null;
        var i = 0;
        var fields = new Array();
        oFloat = new FloatValidations();
        for (x in oFloat) {
          var field = form[oFloat[x][0]];
          
          if (field.type == 'text' ||
            field.type == 'textarea' ||
            field.type == 'select-one' ||
            field.type == 'radio') {
            
            var value = '';
            // get field's value
            if (field.type == "select-one") {
              var si = field.selectedIndex;
              if (si >= 0) {
                value = field.options[si].value;
              }
            } else {
              value = field.value;
            }
            
            if (value.length > 0) {
              // remove '.' before checking digits
              var tempArray = value.split('.');
              var joinedString= tempArray.join('');

              if (!isAllDigits(joinedString)) {
                bValid = false;
                if (i == 0) {
                  focusField = field;
                }
                fields[i++] = oFloat[x][1];

              } else {
                var iValue = parseFloat(value);
                if (isNaN(iValue)) {
                  if (i == 0) {
                    focusField = field;
                  }
                  fields[i++] = oFloat[x][1];
                  bValid = false;
                }
              }
            }
          }
        }
        if (fields.length > 0) {
           focusField.focus();
           alert(fields.join('\n'));
        }
        return bValid;
      }
function validateBusinessNumber(form) {
          var bValid = true;
          var focusField = null;
          var i = 0;
          var sum = 0
          var fields = new Array();
          obizNum = new businessNumber();
          for (x in obizNum) {
            if ((form[obizNum[x][0]].type == 'text' ||
                 form[obizNum[x][0]].type == 'textarea') &&
                (form[obizNum[x][0]].value.length > 0)) {
              if (!checkBusinessNumber(form[obizNum[x][0]].value)) {
                if (i == 0) {
                  focusField = form[obizNum[x][0]];
                }
                fields[i++] = obizNum[x][1];
                bValid = false;
              }
            }
          }

          if (fields.length > 0) {
            focusField.focus();
            alert(fields.join('\n'));
          }
          
          return bValid;
        }

        function checkBusinessNumber(bizNum){
          if (bizNum.length == 10) {
            a = bizNum.charAt(0);
            b = bizNum.charAt(1);
            c = bizNum.charAt(2);
            d = bizNum.charAt(3);
            e = bizNum.charAt(4);
            f = bizNum.charAt(5);
            g = bizNum.charAt(6);
            h = bizNum.charAt(7);
            i = bizNum.charAt(8);
            Osub = bizNum.charAt(9);
  
            suma = a*1 + b*3 + c*7 + d*1 + e*3 + f*7 + g*1 + h*3;
            sumb = (i*5) %10;
            sumc = parseInt((i*5) / 10,10);
            sumd = sumb + sumc; 
            sume = suma + sumd;
            sumf = a + b + c + d + e + f + g + h + i
            k = sume % 10;
            Modvalue = 10 - k;
            LastVal = Modvalue % 10;
            
            if(LastVal != Osub) return false;
            else return true;
          } else {
            return false;
          }
        }
function validateEmail(form) {
        var bValid = true;
        var focusField = null;
        var i = 0;
        var fields = new Array();
        oEmail = new email();
        for (x in oEmail) {
          if ((form[oEmail[x][0]].type == 'text' ||
             form[oEmail[x][0]].type == 'textarea') &&
            (form[oEmail[x][0]].value.length > 0)) {
            if (!checkEmail(form[oEmail[x][0]].value)) {
              if (i == 0) {
                focusField = form[oEmail[x][0]];
              }
              fields[i++] = oEmail[x][1];
              bValid = false;
            }
          }
        }
        if (fields.length > 0) {
          focusField.focus();
          alert(fields.join('\n'));
        }
        return bValid;
      }

      /**
       * Reference: Sandeep V. Tamhankar (stamhankar@hotmail.com),
       * http://javascript.internet.com
       */
      function checkEmail(emailStr) {
         if (emailStr.length == 0) {
           return true;
         }
         var emailPat=/^(.+)@(.+)$/;
         var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
         var validChars="\[^\\s" + specialChars + "\]";
         var quotedUser="(\"[^\"]*\")";
         var ipDomainPat=/^(\d{1,3})[.](\d{1,3})[.](\d{1,3})[.](\d{1,3})$/;
         var atom=validChars + '+';
         var word="(" + atom + "|" + quotedUser + ")";
         var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
         var domainPat=new RegExp("^" + atom + "(\\." + atom + ")*$");
         var matchArray=emailStr.match(emailPat);
         if (matchArray == null) {
           return false;
         }
         var user=matchArray[1];
         var domain=matchArray[2];
         if (user.match(userPat) == null) {
           return false;
         }
         var IPArray = domain.match(ipDomainPat);
         if (IPArray != null) {
           for (var i = 1; i <= 4; i++) {
            if (IPArray[i] > 255) {
             return false;
            }
           }
           return true;
         }
         var domainArray=domain.match(domainPat);
         if (domainArray == null) {
           return false;
         }
         var atomPat=new RegExp(atom,"g");
         var domArr=domain.match(atomPat);
         var len=domArr.length;
         if ((domArr[domArr.length-1].length < 2) ||
           (domArr[domArr.length-1].length > 3)) {
           return false;
         }
         if (len < 2) {
           return false;
         }
         return true;
      }
function validateKorean(form) {
          var bValid = true;
          var focusField = null;
          var i = 0;
          var sum = 0
          var fields = new Array();
          oKor = new korean();
          for (x in oKor) {
            if ((form[oKor[x][0]].type == 'text' ||
                 form[oKor[x][0]].type == 'textarea') &&
                (form[oKor[x][0]].value.length > 0)) {
              if (!isAllHangul(form[oKor[x][0]].value)) {
                if (i == 0) {
                  focusField = form[oKor[x][0]];
                }
                fields[i++] = oKor[x][1];
                bValid = false;
              }
            }
          }

          if (fields.length > 0) {
            focusField.focus();
            alert(fields.join('\n'));
          }
          
          return bValid;
        }
        
        function isAllHangul(hangul) {
          for(i=0 ; i < hangul.length; i++) {         
            ch = escape(hangul.charAt(i));    
            if(ch < '%uAC00' || ch > '%uD7A3'){
              return false;
            }
          }
          return true;
        }
function validateMask(form) {
        var isValid = true;
        var focusField = null;
        var i = 0;
        var fields = new Array();
        oMasked = new mask();
        for (x in oMasked) {
          var field = form[oMasked[x][0]];
          
          if ((field.type == 'text' || 
             field.type == 'textarea') && 
             (field.value.length > 0)) {
            
            if (!matchPattern(field.value, oMasked[x][2]("mask"))) {
              if (i == 0) {
                focusField = field;
              }
              fields[i++] = oMasked[x][1];
              isValid = false;
            }
          }
        }
        
        if (fields.length > 0) {
           focusField.focus();
           alert(fields.join('\n'));
        }
        return isValid;
      }

      function matchPattern(value, mask) {
         return mask.exec(value);
      }
function validateMinLength(form) {
        var isValid = true;
        var focusField = null;
        var i = 0;
        var fields = new Array();
        oMinLength = new minlength();
        for (x in oMinLength) {
          var field = form[oMinLength[x][0]];
          
          if (field.type == 'text' ||
            field.type == 'textarea') {
            
            var iMin = parseInt(oMinLength[x][2]("minlength"));
            if ((trim(field.value).length > 0) && (field.value.length < iMin)) {
              if (i == 0) {
                focusField = field;
              }
              fields[i++] = oMinLength[x][1];
              isValid = false;
            }
          }
        }
        if (fields.length > 0) {
           focusField.focus();
           alert(fields.join('\n'));
        }
        return isValid;
      }
function validateNumber(form) {
        var bValid = true;
        var focusField = null;
        var i = 0;
        var fields = new Array();
        oNumber = new NumberValidations();
        for (x in oNumber) {
          var field = form[oNumber[x][0]];

          if (field.type == 'text' ||
            field.type == 'textarea' ||
            field.type == 'select-one' ||
            field.type == 'radio') {
            
            var value = '';
            // get field's value
            if (field.type == "select-one") {
              var si = field.selectedIndex;
              if (si >= 0) {
                value = field.options[si].value;
              }
            } else {
              value = field.value;
            }
            
            if (value.length > 0) {
            
              if (!isAllDigits(value)) {
                bValid = false;
                if (i == 0) {
                  focusField = field;
                }
                fields[i++] = oNumber[x][1];
               }
             }
          }
        }
        if (fields.length > 0) {
           focusField.focus();
           alert(fields.join('\n'));
        }
        return bValid;
      }

      function isAllDigits(argvalue) {
        argvalue = argvalue.toString();
        argvalue = argvalue.replace(/,/, "");
        var validChars = "0123456789";
        var startFrom = 0;
        var skip = argvalue.indexOf(".");
        if (argvalue.substring(0, 2) == "0x") {
           validChars = "0123456789abcdefABCDEF";
           startFrom = 2;
        } else if (argvalue.charAt(0) == "0") {
           validChars = "0123456789";
           startFrom = 1;
        } else if (argvalue.charAt(0) == "-") {
          startFrom = 1;
        }
        
        for (var n = startFrom; n < argvalue.length; n++) {
          if(skip == n) continue;
          if (validChars.indexOf(argvalue.substring(n, n+1)) == -1) return false;
        }
        return true;
      }



var searchtit1 = new Image();
var searchtit2 = new Image();
var searchtit3 = new Image();
var searchtit4 = new Image();

	
var searchtit1on = new Image();	
var searchtit2on = new Image();  
var searchtit3on = new Image();	
var searchtit4on = new Image();	


searchtit1.src = "/images/searchtit01.gif";
searchtit2.src = "/images/searchtit02.gif";
searchtit3.src = "/images/searchtit03.gif";
searchtit4.src = "/images/searchtit04.gif";


searchtit1on.src = "/images/searchtit01on.gif";
searchtit2on.src = "/images/searchtit02on.gif";
searchtit3on.src = "/images/searchtit03on.gif";
searchtit4on.src = "/images/searchtit04on.gif";

function on2(num)
{

	document.getElementById('searchtit0'+num).src = eval( 'searchtit' + num+ 'on.src');
}
 
function off2(num)
{

	document.getElementById('searchtit0'+num).src =  eval( 'searchtit' + num+ '.src');
}
 
function chgImg(num)
{
 
	for (var i=1 ; i < 5; i++)
	{
		if(i == num){
			document.getElementById('searchtit0'+i).src = eval( 'searchtit' + i+ 'on.src');

		}else{
			document.getElementById('searchtit0'+i).src =  eval( 'searchtit' + i+ '.src');
		}
	} 
}

function changeSearchType(type)
{
	var str="";
	chgImg(type);
	switch(type){
	case ("1"):
		str='Buyer';
		break;
	case ("2"):
		str='Buying Offer';
		break;
	case ("3"):
		str='Seller';
		break;
	case ("4"):
		str='Selling Offer';
		break;
	}

	document.all.searchtype.value=type;
	document.all.searchKeyword.value="Search "+str;
}

function searchList()
{
	var type= document.all.searchtype.value;
	var strword= document.all.searchKeyword.value;
	
	if (strword ==null || strword =='') return;
	
	var link='';

	switch(type){
	case ("1"):
		link="/searchDirectory.do?mnId=koreaBuyer&catType=D&dirType=B&searchField=productName&categoryId=-1&allCategories=true&amp;fPageNum=21";
		break;
	case ("2"):
		link="/searchOffer.do?mnId=buyOffer&catType=O&offerType=B&searchField=productName&categoryId=-1&allCategories=true&amp;fPageNum=20";
		break;
	case ("3"):
		link="/searchDirectory.do?mnId=globalSeller&catType=D&dirType=S&searchField=productName&categoryId=-1&allCategories=true&amp;fPageNum=21";
		break;
	case ("4"):
		link="/searchOffer.do?mnId=sellOffer&catType=O&offerType=S&searchField=productName&categoryId=-1&allCategories=true&amp;fPageNum=20";
		break;
	}

	location.href =link+'&searchKeyword='+strword;	
	
}

function clearDfText(el){

	if(isMatchTitle(el.value)){
		el.value = '';
		
	}
}

function isMatchTitle(val){
	return (val.match(/^Search (?:Buyer|Selling Offer|Buying Offer|Seller)$/) != null);
}



      function _watch() {
          var url="/themes/default/templates/currentTime.jsp";
          return loadXMLDoc(url, _watch_Result);
      }

      function _watch_Result(responseText) {
          var obj = document.getElementById("timezone");
          if (obj) {
              var today = new Date();
              var toTime = today.getTime();
              var terms = obj.options[obj.selectedIndex].value * 60;

              if (obj.selectedIndex == 0) {
                  terms = 0;
                //  if(ie4){
                //      document.getElementById("time_text").innerText = "GMT";
                //  } else {
                      document.getElementById("time_text").textContent = "GMT";
               //   }
              } else {
               //   if(ie4){
                      document.getElementById("time_text").innerText = obj.options[obj.selectedIndex].text;
                //  } else {
                      document.getElementById("time_text").textContent = obj.options[obj.selectedIndex].text;
              //   }
              }
              toTime = parseInt(responseText) + (terms * 60 * 1000);
              flashWatch('watch_local','http://image.ecplaza.net/global/flash/watch_digital4.swf',148, 60,'timestamp='+ toTime,'window');
          }
      }

//ajax

  var xmlHTTPReq = null;
    var xmlHTTPReqCB = null;
    
    /*
     * some work to use XMLHTTPRequest Object
     */
    function prepareXmlHTTPRequest(){
        if(window.XMLHttpRequest) {
            try {
                xmlHTTPReq = new XMLHttpRequest();
            } catch(e) {
                xmlHTTPReq = false;
            }
        }
        else if(window.ActiveXObject) {
            try {
                xmlHTTPReq = new ActiveXObject("Msxml2.XMLHTTP");
            } catch(e) {
                try {
                    xmlHTTPReq = new ActiveXObject("Microsoft.XMLHTTP");
                } catch(e) {
                    xmlHTTPReq = false;
                }
            }
        }
    }
    function processReqChange() {
        if (xmlHTTPReq.readyState == 4) { // Loaded
            if (xmlHTTPReq.status == 200) { // only if "OK"
                xmlHTTPReqCB(unescape(xmlHTTPReq.responseText));
            } else {
                //alert("There was a problem retrieving the XML data:\n" + req.statusText);
                alert("There was a problem retrieving the data" );
            }
        }
    }

    /*
     * Simple Call for requesting Document
     */
    function loadXMLDoc(url, cb) {

        prepareXmlHTTPRequest();
    
        if (xmlHTTPReq) {
            xmlHTTPReqCB = cb;
            xmlHTTPReq.onreadystatechange = processReqChange;
            try {
                xmlHTTPReq.open("GET", url, true);
                xmlHTTPReq.send("");
            } catch (e) {
                alert("There may be one or more problem to execute XML request");
            }
        }

        delete xmlHTTPReq;
    	setTimeout("loadXMLDoc('"+url+"', cb)", 600000);
    }

    /*
     * call of Form element for requesting Document
     */
    function submitFormToXMLDoc(form_id, resultFunctioni){
        var form;
        var method;
        var action;
        var postData = "";

        form = document.getElementById(form_id);
        if ( !form ) {
        	document.getElementById("transLoading").style.display="none";
            alert("Check form id");
            return;
        }
    
        method = form.method.toUpperCase();
		if ( !method ) {
        	document.getElementById("transLoading").style.display="none";
            alert("Form must have an attribute 'method'");
            return;
        }
    
        action = form.action;
        if ( !action ) {
        	document.getElementById("transLoading").style.display="none";
            alert("Form must have an attribute 'action'");
            return;
        }

        prepareXmlHTTPRequest();
    
        if (xmlHTTPReq) {
    		xmlHTTPReqCB = resultFunctioni;
            xmlHTTPReq.onreadystatechange = processReqChange;
        }
        else {
            return;
        }

        if (method == "POST") {
            xmlHTTPReq.open(method, action, true);
    
            if (xmlHTTPReq) {
                for (i=0; i < form.elements.length; i++) {
                    if (form.elements[i].name) 
                       postData = postData + "&" + form.elements[i].name + "=" + encodeURIComponent(form.elements[i].value);
                }
                postData = postData.substr(1);
    
                xmlHTTPReq.setRequestHeader("Method", "POST " + action + " HTTP/1.1");
                xmlHTTPReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
                xmlHTTPReq.setRequestHeader("Content-Length", postData.length);
            }
        } else if (method == "GET") {
            if (action.indexOf("?") == -1) action = action + "?";
            else action = action + "&";
            
            for (i=0; i < form.elements.length; i++) {
                if (form.elements[i].name) {
                    action = action + "&" + form.elements[i].name + "=" + encodeURIComponent(form.elements[i].value);
                }
            }

            xmlHTTPReq.open(method, action, true);
            postData = null;
        } else {
        	document.getElementById("transLoading").style.display="none";
            alert("Unsupported Form Method: " + method);
            return;
        }
        
    	try {
        	xmlHTTPReq.send(postData);
        } catch (e) {
        	document.getElementById("transLoading").style.display="none";
            alert("There may be one or more problem to execute XML request");
            delete xmlHTTPReq;
        }
    
        return;
    }



function ebookLoad(){
 
    xx = screen.availWidth;
    var pname="pop";
    if(xx==1024){
        var win1=window.open('/ebook/lifewz.htm',pname,'fullscreen');
    }else{
        var win1=window.open('/ebook/lifewz.htm',pname,'width=1024,height=768,marginwidth=0,marginheight=0,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no');
    }
}

   
