/*  
COPYRIGHT EC-SERVER ALL RIGHT RESERVED
Author : Carl 
$Id: datacheck.js,v 1.2 2007/10/13 07:39:17 carl Exp $
name : dataCheck 
       check datainput is valid or not
    Note : need array this.screenField 
                      this.screenName
		      this.screenNull
		      this.screenType
	         var  f_length = this.screenField.length;
    require :  cl_dates.js
               cl_vartype.js
               cl_trim.js
   By  wjg ;2000/9/30
*/
function dataCheck() {
	this.ErrMsg = new Array();
	this.ErrMsg[2] = "Please Input Something!";
	this.ErrMsg[1] = "Error1!";
	return this;
} 

/**
*     set screenField

*     @param string p_field
*     @return null
*/ 
dataCheck.prototype.setField = function(p_field) {
	this.screenField = p_field;
}

/**
*     set screenName

*     @param string p_name
*     @return null
*/
dataCheck.prototype.setName = function(p_name) {
	this.screenName = p_name;
}

dataCheck.prototype.setNull = function(p_null) {
	this.screenNull = p_null;
}

/**
*     set screenType

*     @param string p_type
*     @return null
*/
dataCheck.prototype.setType = function(p_type) {
	this.screenType = p_type;
}

/**
*     get object;

*     @param string p_form
*		@param string p_name
*     @param string p_prefix
*     @return object;
*/
dataCheck.prototype.getObj = function(p_form,p_name,p_prefix) {
   var obj ;
	if(typeof(p_form)=='object') {
   	obj = eval("p_form."+p_prefix+p_name);
	}
	else {
   	obj = eval("document."+p_form+"."+p_prefix+p_name);
	}
   //var obj = eval("document."+p_form+"."+p_prefix+p_name);
   if(!obj) return false;
   return obj;
}

/**
*     set error msg;

*     @param string p_msg
*     @return null
*/
dataCheck.prototype.setMsg = function(p_msg) {
	this.ErrMsg = p_msg;
}

/**
*     check if datas in the form validate;

*     @param string p_form name of the form;
*     @param string p_prefix
*     @return bool
*/
dataCheck.prototype.datavalid = function(p_form,p_prefix)  {
   var msg = "";
   var focusobj ;
   var flag = 1;
	var f_length = this.screenField.length;
	var strUtl = new strUtil('');
	for(var i=0;i<f_length;i++)  {
		if(typeof(this.screenName[i])=='undefined') continue;
		if(this.screenType[i]=="l") {
			if(this.screenNull[i]=='1')  continue;
			obj = this.getObj(p_form,this.screenField[i],p_prefix);  
			if(!obj) continue;
			if(obj.checked) continue;
			var l_len = obj.length;
			var chk = false;
			for(j=0;j<l_len;j++) {
				obj = this.getObj(p_form,this.screenField[i]+"["+j+"]",p_prefix);  
				if(obj.checked) { chk = true;  break; }
			}
         if(chk) continue;
	    	msg = msg + this.screenName[i]+" : "+this.ErrMsg[1]+"\n";
	     	if(flag) {
	        	focusobj = obj;
				flag = 0;
	      }
	     	continue;
     	}
      obj = this.getObj(p_form,this.screenField[i],p_prefix);
      if(!obj) continue;
      if(!this.screenNull[i] && strUtl.trim(obj.value) == "") {
      	msg =msg +  this.screenName[i]+ " : "+this.ErrMsg[1]+"\n";
	  	 	if(flag) { focusobj = obj;  flag = 0; }
		}
      switch(this.screenType[i]){
         case "d":     // date
            if(obj.value != "" && !dateUtil.prototype.isDates(obj.value)) {
               msg +=  this.screenName[i]+ " : " + this.ErrMsg[3] +" \n";
	       		if(flag) { focusobj = obj;  flag = 0; }
            }
            break;
         case "i":
            if(obj.value != "" && !strUtl.isInteger(obj.value)) {
               msg +=  this.screenName[i]+ " : "+ this.ErrMsg[2]+" \n";
	        		if(flag) { focusobj = obj;  flag = 0; }
            }
            break;
         case "n":
            if(obj.value != "" && isNaN(obj.value)) {
               msg += this.screenName[i]+ " : "+ this.ErrMsg[4]+" \n";
	       		if(flag) { focusobj = obj;  flag = 0; }
            }
            break;
         case "f":
            if(obj.value != "" && isNaN(obj.value)) {
               msg += this.screenName[i]+ " : " + this.ErrMsg[4] +" \n";
	        		if(flag) { focusobj = obj;  flag = 0; }
            }
            break;
         case "l":
            if(obj.value != "" && !strUtl.isInteger(obj.value))  {
               msg += this.screenName[i]+ " : " + this.ErrMsg[2]+" \n";
	        		if(flag) { focusobj = obj;  flag = 0; }
            }
            break;
         case "e":
            if(obj.value != "" && !strUtl.isEmail(obj.value))  {
               msg += this.screenName[i]+ " : " + this.ErrMsg[5]+" \n";
	        		if(flag) { focusobj = obj;  flag = 0; }
            }
            break;
     	}
	}
   if(!strUtl.isEmpty(msg))  {
      msg = this.ErrMsg[0] + " :\n" + msg ;
      alert(msg);
		try {
 			focusobj.focus();
		}catch(e){}
	 	return false;
   }
   return true;
}
