

var Validator_by_activity = function(name){

  this.formName = name;
  this.errMsg = new Array();
	
  this.errorBackgroundColor = 'FEF1F1';	//錯誤的顏色顯示
	
  /* *
  * 检查用户是否输入了内容
  *
  * @param :  controlId   表单元素的ID
  * @param :  msg         错误提示信息
  */
  this.required = function (controlId, msg){
    var obj = document.forms[this.formName].elements[controlId];
	
    if (typeof(obj) == "undefined" || Utils.trim(obj.value) == ""){
      this.addErrorMsg(msg);
      obj.style.backgroundColor = this.errorBackgroundColor;    
      this.red_word(controlId);
    }else{
    	this.unRed_word(controlId);
    	obj.style.backgroundColor = '';
    }
    	
    
  };
  
  this.red_word = function(el_id){

	try{
		var el = document.getElementById(el_id+"_label");
   		el.className = 'errorFont_label';
	}catch(ex){}
}

  this.unRed_word = function(el_id){
	var el = document.getElementById(el_id+"_label");
   	el.className = '';
}

  this.reset = function(){
  	 var form = document.forms[this.formName]; 
  	 
  	 for (i = 0; i < form.elements.length; i++ ){
        var el = form.elements[i];
        if(el.style.backgroundColor == this.errorBackgroundColor)
        	el.style.backgroundColor = '';
      }
  }

 /* *
  * 检查用户输入的是否为合法的邮件地址
  *
  * @param :  controlId   表单元素的ID
  * @param :  msg         错误提示信息
  * @param :  required    是否必须
  */
  this.isEmail = function(controlId, msg, required) {
    var obj = document.forms[this.formName].elements[controlId];
    obj.value = Utils.trim(obj.value);
	
    obj.style.backgroundColor = '';
    this.unRed_word(controlId);
    
    if ( ! required && obj.value == '')	return;


    if ( ! Utils.isEmail(obj.value)){
    	try{
    		this.red_word(controlId);
    		obj.style.backgroundColor = this.errorBackgroundColor;
    		}catch(ex){}
      	this.addErrorMsg(msg);
    }
  }
  
  
  /**驗証是否電話*/
  this.isTel = function(controlId, msg, required) {
	var obj = document.forms[this.formName].elements[controlId];
    obj.value = Utils.trim(obj.value);

    if ( ! required && obj.value == '')
    {
      return;
    }

    if ( ! Utils.isTel(obj.value))
    {
      this.addErrorMsg(msg);
    }
  }
  /* *
  * 检查两个表单元素的值是否相等
  *
  * @param : fstControl   表单元素的ID
  * @param : sndControl   表单元素的ID
  * @param : msg         错误提示信息
  */
  this.eqaul = function(fstControl, sndControl, msg) {
    var fstObj = document.forms[this.formName].elements[fstControl];
    var sndObj = document.forms[this.formName].elements[sndControl];

    if (fstObj != null && sndObj != null)
    {
      if (fstObj.value == '' || fstObj.value != sndObj.value)
      {
        this.addErrorMsg(msg);
      }
    }
  }

  /* *
  * 检查前一个表单元素是否大于后一个表单元素
  *
  * @param : fstControl   表单元素的ID
  * @param : sndControl	  表单元素的ID
  * @param : msg			    错误提示信息
  */
  this.gt = function(fstControl, sndControl, msg) {
    var fstObj = document.forms[this.formName].elements[fstControl];
    var sndObj = document.forms[this.formName].elements[sndControl];

    if (fstObj != null && sndObj != null) {
      if (Utils.isNumber(fstObj.value) && Utils.isNumber(sndObj.value)) {
        var v1 = parseFloat(fstObj.value) + 0;
        var v2 = parseFloat(sndObj.value) + 0;
      } else {
        var v1 = fstObj.value;
        var v2 = sndObj.value;
      }

      if (v1 <= v2) this.addErrorMsg(msg);
    }
  }

  /* *
  * 检查输入的内容是否是一个数字
  *
  * @param :  controlId   表单元素的ID
  * @param :  msg         错误提示信息
  * @param :  required    是否必须
  */
  this.isNumber = function(controlId, msg, required) {
    var obj = document.forms[this.formName].elements[controlId];
    obj.value = Utils.trim(obj.value);

    if (obj.value == '' && ! required)
    {
      return;
    }
    else
    {
      if ( ! Utils.isNumber(obj.value))
      {
        this.addErrorMsg(msg);
      }
    }
  }

 /* *
  * 检查输入的内容是否是一个整数
  *
  * @param :  controlId   表单元素的ID
  * @param :  msg         错误提示信息
  * @param :  required    是否必须
  */
  this.isInt = function(controlId, msg, required){
    var obj = document.forms[this.formName].elements[controlId];
    obj.value = Utils.trim(obj.value);

    if (obj.value == '' && ! required)
    {
      return;
    }
    else
    {
      if ( ! Utils.isInt(obj.value)) this.addErrorMsg(msg);
    }
  }

 /* *
  * 检查输入的内容是否是一个整数
  *
  * @param :  controlId   表单元素的ID
  * @param :  msg         错误提示信息
  * @param :  required    是否必须
  */
  this.isNullOption = function(controlId, msg) {
    var obj = document.forms[this.formName].elements[controlId];

    obj.value = Utils.trim(obj.value);

    if (obj.value > '0' )
    {
      return;
    }
    else
    {
      this.addErrorMsg(msg);
    }
  }

  /* *
  * 检查输入的内容是否是"2006-11-12 12:00:00"格式
  *
  * @param :  controlId   表单元素的ID
  * @param :  msg         错误提示信息
  * @param :  required    是否必须
  */
  this.isTime = function(controlId, msg, required)  {
    var obj = document.forms[this.formName].elements[controlId];
    obj.value = Utils.trim(obj.value);

    if (obj.value == '' && ! required)
    {
      return;
    }
    else
    {
      if ( ! Utils.isTime(obj.value)) this.addErrorMsg(msg);
    }
  }

  /* *
  * 检查指定的checkbox是否选定
  *
  * @param :  controlId   表单元素的name
  * @param :  msg         错误提示信息
  */
  this.requiredCheckbox = function(chk, msg) {
    var obj = document.forms[this.formName].elements[controlId];
    var checked = false;

    for (var i = 0; i < objects.length; i ++ ){
      if (objects[i].type.toLowerCase() != "checkbox") continue;
      if (objects[i].checked){
        checked = true;
        break;
      }
    }

    if ( ! checked) this.addErrorMsg(msg);
  }
  this.passed = function() {
    if (this.errMsg.length > 0){
      var msg = "";
      for (i = 0; i < this.errMsg.length; i ++ )
      {
        msg += "- " + this.errMsg[i] + "\n";
      }

      alert(msg);
      return false;
    }
    else{	return true;}
  }
  /* *
  * 增加一个错误信息
  *
  * @param :  str
  */
  this.addErrorMsg = function(str){
    this.errMsg.push(str);
  }
}
