

var myForm = {
  fTitle : "",
  fValue : "",
  fName : "",
  fField : "",

  check: function(fObject) {
	
	/*if(fObject.DueDate){
		alert(fObject.DueDate.value);
		return false;
	}*/
    for(var i = 0;i < fObject.elements.length;i++) {
    fField = fObject.elements[i];
    fTitle = fField.title;
    fValue = myString.trim(fField.value);
    fName = fField.name;
	if(fField.displayName){
		fName = fField.displayName;
	}
    fType = fField.type;

    switch(fType) {
      case "text":
      case "password":
      case "textarea":
        if(fTitle == "required" && encodeURI(fValue).length < 1) {
        alert(fName+': is required. Please complete.');
        fField.focus();
        return false;
		if(fName ==  "DueDate"){
			if (!this._CF_checkdate(fValue)){
				alert("Please enter valid date.");
				return false;
			}
		}
      }else if(fName == "DueDate"){
		  if(encodeURI(fValue).length > 0) {
			//check date
			if (!this._CF_checkdate(fValue)){
				alert("Please enter valid date.");
				return false;
			}
		  }
		  
		  
	  }
      break;
      case "select-one":
        if(fTitle == "required" &&
        fField.options[fField.selectedIndex].value.length < 1) {
        alert(fName+': is required, please select one.');
        fField.focus();
        return false;
        } // if
      break;
    } // switch
    } // for
  }, // method
  
  _CF_checkdate: function(object_value){
	object_value = object_value.replace(/^\s+/,'').replace(/\s+$/,'');
    object_value = object_value = object_value.replace(/{d \'/, '').replace(/'}/, '');
	isplit = object_value.indexOf('/');
	splitchr = "/";
	if (isplit == -1)
	{
		isplit = object_value.indexOf('.');
		splitchr = ".";
	}

	if (isplit == -1)
	{
		isplit = object_value.indexOf('-');
		splitchr = "-";
	}

	if (isplit == -1 || isplit == object_value.length)
		return false;
	

    var element1 = object_value.substring(0, isplit);
	
    // check for yyyy-mm-dd format
    if( element1.length == 4 )
    {
        sYear = object_value.substring(0, isplit);
        isplit = object_value.indexOf(splitchr, isplit + 1);
        if (isplit == -1 || (isplit + 1 ) == object_value.length)
                return false;
        sMonth = object_value.substring((sYear.length + 1), isplit);
        sDay = object_value.substring(isplit + 1);
     }
	 else
    {
        sMonth = object_value.substring(0, isplit);
        isplit = object_value.indexOf(splitchr, isplit + 1);
         if (isplit == -1 || (isplit + 1 ) == object_value.length)
                return false;
        sDay = object_value.substring((sMonth.length + 1), isplit);
        sYear = object_value.substring(isplit + 1);
     }
	 
	 if (!this._CF_checkinteger(sMonth)) //check month
                 return false;
	 else
	 if (!this._CF_checkrange(sMonth, 1, 12)) //check month
			 return false;
	 else
	 if (!this._CF_checkinteger(sYear)) //check year
			 return false;
	 else
	 if( sYear.length != 1 && sYear.length != 2 && sYear.length != 4 )
			return false;
	 else
	 if (!this._CF_checkrange(sYear, 0, 9999)) //check year
			 return false;
	 else
	 if (!this._CF_checkinteger(sDay)) //check day
			 return false;
	 else
	 if (!this._CF_checkday(sYear, sMonth, sDay)) // check day
			 return false;
	 else
			 return true;

	
  },//method
  	
	_CF_checkday: function(checkYear, checkMonth, checkDay)
	{
		maxDay = 31;
	
		if (checkMonth == 4 || checkMonth == 6 ||
			checkMonth == 9 || checkMonth == 11)
			maxDay = 30;
		else if (checkMonth == 2)
		{
			if (checkYear % 4 > 0)
				maxDay =28;
			else if (checkYear % 100 == 0 && checkYear % 400 > 0)
				maxDay = 28;
			else
				maxDay = 29;
		}
	
		return this._CF_checkrange(checkDay, 1, maxDay);
	},//method
	
	_CF_checkday: function(checkYear, checkMonth, checkDay)
	{
		maxDay = 31;
	
		if (checkMonth == 4 || checkMonth == 6 ||
			checkMonth == 9 || checkMonth == 11)
			maxDay = 30;
		else if (checkMonth == 2)
		{
			if (checkYear % 4 > 0)
				maxDay =28;
			else if (checkYear % 100 == 0 && checkYear % 400 > 0)
				maxDay = 28;
			else
				maxDay = 29;
		}
	
		return this._CF_checkrange(checkDay, 1, maxDay);
	},//method
	
	
	_CF_checkinteger: function(object_value, required)
	{
		//trim whitespace before we validate
		object_value = object_value.replace(/^\s+/,'').replace(/\s+$/,'');
		//remove numeric noise
		object_value = object_value.replace(/[$ŁĄ€,~+]?/g, '');
	
	
		if( required )
		{
			if( object_value.length == 0 )
			{
				return false;
			}
		}else{
			if( object_value.length == 0 )
			{
				return true;
			}
		}
	
	
		var decimal_format = ".";
		var check_char = object_value.indexOf(decimal_format);
	
		if (check_char == -1)
			return this._CF_checknumber(object_value);
		else
			return false;
	},//method
	
	_CF_checkrange: function(object_value, min_value, max_value, required)
	{
		object_value = object_value.replace(/^\s+/,'').replace(/\s+$/,'');
	
		if( required )
		{
			if( object_value.length == 0 )
			{
				return false;
			}
		}else{
			if( object_value.length == 0 )
			{
				return true;
			}
		}
	
	
		if (!this._CF_checknumber(object_value))
			return false;
		else
			return (this._CF_numberrange((eval(object_value)), min_value, max_value));
	
		return true;
	},//method
	
	_CF_checknumber: function (object_value, required)
	{
		var start_format = " .+-0123456789";
		var number_format = " .0123456789";
		var check_char;
		var decimal = false;
		var trailing_blank = false;
		var digits = false;
	
		//trim whitespace before we validate
		object_value = object_value.replace(/^\s+/,'').replace(/\s+$/,'');
		//remove numeric noise
		object_value = object_value.replace(/[$ŁĄ€,~+]?/g, '');
	
	
		if( required )
		{
			if( object_value.length == 0 )
			{
				return false;
			}
		}else{
			if( object_value.length == 0 )
			{
				return true;
			}
		}
	
	
	
		check_char = start_format.indexOf(object_value.charAt(0));
	
		if (check_char == 1)
			decimal = true;
		else if (check_char < 1)
			return false;
	
		for (var i = 1; i < object_value.length; i++)
		{
			check_char = number_format.indexOf(object_value.charAt(i));
			if (check_char < 0)
				return false;
			else if (check_char == 1)
			{
				if (decimal)
					return false;
				else
					decimal = true;
			}
			else if (check_char == 0)
			{
				if (decimal || digits)	
					trailing_blank = true;
			}
			else if (trailing_blank)
				return false;
			else
				digits = true;
		}	
	
		return true
	},//method

	_CF_numberrange: function (object_value, min_value, max_value, required)
	{
		//trim whitespace before we validate
		//object_value = object_value.replace(/^\s+/,'').replace(/\s+$/,'');
	
		if( required )
		{
			if( object_value.length == 0 )
			{
				return false;
			}
		}else{
			if( object_value.length == 0 )
			{
				return true;
			}
		}
	
	
		if (min_value != null)
		{
			if (object_value < min_value)
				return false;
		}
	
		if (max_value != null)
		{
			if (object_value > max_value)
				return false;
		}
	
		return true;
	}

	

} // object

var myString = {
  trim : function(s) {
  return s.replace(/^s+/, '').replace(/s+$/,'');
  }, // method
  noTags : function(s) {
   return s.replace(/<?[^>]+>/gi,'');
  },
  strip : function(s) {
    return this.noTags(this.trim(s));
  }
}

