//--------------------------------------------------------------------------------------------------------------------------------------
//////// Check IS Form modified???
function isFormModified(f)
{
	var elements = f.elements;
	if (!elements)
	{
		return true;
	}
	for (var i=0; i<elements.length; i++)
	{
		if (elements[i].defaultValue != null && elements[i].defaultValue != elements[i].value)
    {
			return true;
    }
	}
	return false;
}

//---------------------------------------------------------------------------------------------------------------------------------------
//////// Check is Email Valid
	function isEmail(str)
	{
		if (!str)
    {
			return true;
    }
		var re =/^[A-Za-z0-9_\-]+(\.[A-Za-z0-9_\-]+)*@([A-Za-z0-9_\-]+\.)+[A-Za-z0-9_\-]{2,4}$/;
		if (!re.test(str))
    {
      return false;
    }
		return true;
	}

//---------------------------------------------------------------------------------------------------------------------------------------
//////// Check is Float and between minValue and maxValue
	function isFloat(str, minValue, maxValue)
	{
		if (!str)
    {
			return true;
    }
    var value = parseFloat(str, 10);
		if(isNaN(str) || str != value)
    {
			return false;
    }
    if (minValue && value < minValue)
    {
			return false;
    }
    if (maxValue && value > maxValue)
    {
			return false;
    }
		return true;
	}

//---------------------------------------------------------------------------------------------------------------------------------------
//////// Check is Integer and between minValue and maxValue
	function isInteger(str, minValue, maxValue)
	{
		if (!str)
    {
			return true;
    }
    var value = parseInt(str, 10);
		if(isNaN(str) || str != value)
    {
			return false;
    }
    if (minValue && value < minValue)
    {
			return false;
    }
    if (maxValue && value > maxValue)
    {
			return false;
    }
		return true;
	}

//---------------------------------------------------------------------------------------------------------------------------------------
//////// Check is AlNum
	function isAlNum(str)
	{
		alert(str);
	if (!str)
    {
			return true;
    }
	
	var re =/^[A-Za-z\d_]+$/;
	if (!re.test(str))
    {
      return false;
    }
		return true;
	}

//---------------------------------------------------------------------------------------------------------------------------------------
//////// Check is password valid
	function isPassword(str)
	{
		if (!str)
    {
			return true;
    }
		if(str.length<6)
    {
			return false;
    }
		else
    {
			return true;
    }
	}

//---------------------------------------------------------------------------------------------------------------------------------------
//////// Check is login valid
	function isLogin(str)
	{
		if (!str)
    {
			return true;
    }
		var re =/^[A-Za-z][A-Za-z\d_]{5,}$/;
		if (!re.test(str))
    {
      return false;
    }
		return true;
	}

//---------------------------------------------------------------------------------------------------------------------------------------
	function checkFields(f)
	{
		return checkFields1(f, f.submit);
	}

//---------------------------------------------------------------------------------------------------------------------------------------
//////// Check required
	function required(str)
  {
	return !(/^\s*$/.test(str))
  }

//---------------------------------------------------------------------------------------------------------------------------------------
//////// Check manual date
	function dateManual(str)
	{
		if (!str)
    {
			return true;
    }
		var reg = /^([0-9]{4})-([1-9]|0[1-9]|1[0-2])-([1-9]|0[1-9]|[1-2][0-9]|3[0-1])$/;
		
    if(!reg.test(str))
    {
      return false;
    }
    else
    {
  		return true;
    }
	}

//---------------------------------------------------------------------------------------------------------------------------------------
	function showErrorMessage(message, field, focus, result)
	{
    if (focus)
    {
      field.focus();
    }
    alert(message + ': ' + field.title);
    return result;
  }

//---------------------------------------------------------------------------------------------------------------------------------------
	function checkField(field)
	{
//<for IE only>
    if (field.alt.search(/isFloat/i) != -1)
    {
      if (!isFloat(field.value, field.minValue, field.maxValue))
      {
        return showErrorMessage(messageInvalid, field, true, false);
      }
    }

    if (field.alt.search(/isInteger/i) != -1)
    {
      if (!isInteger(field.value, field.minValue, field.maxValue))
      {
        return showErrorMessage(messageInvalid, field, true, false);
      }
    }
//</for IE only>

    if (field.alt.search(/isAlNum/i) != -1)
    {
      if (!isAlNum(field.value))
      {
        return showErrorMessage(messageInvalid, field, true, false);
      }
    }

    if (field.alt.search(/isLogin/i) != -1)
    {
      if (!isLogin(field.value))
      {
        return showErrorMessage(messageInvalid, field, true, false);
      }
    }

    if (field.alt.search(/isPassword/i) != -1)
    {
      if (!isPassword(field.value))
      {
        return showErrorMessage(messageInvalid, field, true, false);
      }
    }

    if (field.alt.search(/isEmail/i) != -1)
    {
      if (!isEmail(field.value))
      {
        return showErrorMessage(messageInvalid, field, true, false);
      }
    }

    if (field.alt.search(/dateManual/i) != -1)
    {
      if (!dateManual(field.value))
      {
        return showErrorMessage(messageInvalid, field, true, false);
      }
    }

    if (field.alt.search(/required/i) != -1)
    {
      if (field.tagName == 'select')
      {
        if (!field.selected)
        {
          return showErrorMessage(messageNotFilledIn, field, true, false);
        }
      }
      else
      {
        if (!required(field.value))
        {
          return showErrorMessage(messageNotFilledIn, field, true, false);
        }
      }
    }

    return true;
  }
//---------------------------------------------------------------------------------------------------------------------------------------
	function checkFields1(f, callbackFunction)
	{
////////
		var obj = f.elements;
		if (!obj)
		{
			return true;
		}
////////
    for (var i=0; i<obj.length; i++)
		{
      if (obj[i].alt)
      {
        if (!checkField(obj[i]))
        {
          return false;
        }
      }
    }
    return true;
	}
//---------------------------------------------------------------------------------------------------------------------------------------