/*  name : datavalid 
           check datainput is valid or not
    Note : need array m_screen_field 
                      m_screen_name
		      m_null
		      m_data_type
	         var  f_length = m_screen_field.length;
    require :  cl_dates.js
               cl_vartype.js
               cl_trim.js
   By  wjg ;2000/9/30
*/
  
  function getObj(p_form,p_name) {
     var obj = eval("document."+p_form+"."+p_name);
     if(!obj) return false;
     return obj;
   }
  function datavalid(p_form)  {
     var msg = "";
     var focusobj ;
     var flag = 1;
     for(var i=0;i<f_length;i++)  {
        if(m_data_type[i]=="l") {
	     if(m_null[i]=='1')  continue;
             obj = getObj(p_form,m_screen_field[i]);  
             if(!obj) continue;
	     var l_len = obj.length;
             var chk = false
	     for(j=0;j<l_len;j++) {
                obj = getObj(p_form,m_screen_field[i]+"["+j+"]");  
                if(obj.checked) { chk = true;  break; }
	     }
             if(chk) continue;
	     msg = msg + m_screen_name[i]+ errMsg[1]+"\n";
	     if(flag) {
	         focusobj = obj;
		 flag = 0;
	      }
	     continue;
          }
       obj = getObj(p_form,m_screen_field[i]);
       if(!obj) continue;
       if(!m_null[i] && cl_trim(obj.value," ") == "") {
           msg =msg +  m_screen_name[i]+ errMsg[1]+"\n";
	   if(flag) { focusobj = obj;  flag = 0; }
	}
       switch(m_data_type[i]){
          case "d":     // date
             if(obj.value != "" && !isDates(obj.value)) {
                msg +=  m_screen_name[i]+ errMsg[3] +" \n";
	        if(flag) { focusobj = obj;  flag = 0; }
              }
             break;
          case "i":
             if(obj.value != "" && !cl_isInteger(obj.value)) {
                msg +=  m_screen_name[i]+ errMsg[2]+" \n";
	        if(flag) { focusobj = obj;  flag = 0; }
              }
             break;
          case "n":
             if(obj.value != "" && isNaN(obj.value)) {
                msg += m_screen_name[i]+ errMsg[4]+" \n";
	        if(flag) { focusobj = obj;  flag = 0; }
              }
             break;
          case "f":
             if(obj.value != "" && isNaN(obj.value)) {
                msg += m_screen_name[i]+ errMsg[4] +" \n";
	        if(flag) { focusobj = obj;  flag = 0; }
              }
             break;
          case "l":
             if(obj.value != "" && !cl_isInteger(obj.value))  {
                msg += m_screen_name[i]+ errMsg[2]+" \n";
	        if(flag) { focusobj = obj;  flag = 0; }
              }
             break;
       }
     }
     if(!cl_isEmpty(msg))  {
         msg = errMsg[0] + " :\n" + msg ;
         alert(msg);
	 focusobj.focus();
	 return false;
     }
     return true;
  }

