
/**
* changes all umlauts ( -> ae,  -> oe,  -> ue)
* @param _input = input text field
*/

function changeUmlauts(str)
{
var re = new RegExp("([])","g");  str = str.replace(re, "A");
  re = new RegExp("([])","g");  str = str.replace(re, "a");
  re = new RegExp("([])","g");  str = str.replace(re, "E");
  re = new RegExp("([])","g");  str = str.replace(re, "e");
  re = new RegExp("([])","g");  str = str.replace(re, "O");
  re = new RegExp("([])","g");  str = str.replace(re, "o");
  re = new RegExp("([])","g");  str = str.replace(re, "N");
  re = new RegExp("([])","g");  str = str.replace(re, "n");
  re = new RegExp("([])","g");  str = str.replace(re, "C");
  re = new RegExp("([])","g");  str = str.replace(re, "c");
  re = new RegExp("([])","g");  str = str.replace(re, "Z");
  re = new RegExp("([])","g");  str = str.replace(re, "z");
  re = new RegExp("([])","g");  str = str.replace(re, "Z");
  re = new RegExp("([])","g");  str = str.replace(re, "z");
  re = new RegExp("([])","g");  str = str.replace(re, "s");
  re = new RegExp("([])","g");  str = str.replace(re, "s");
  re = new RegExp("([])","g");  str = str.replace(re, "L");
  re = new RegExp("([])","g");  str = str.replace(re, "l");

  return str;
}

/**
* checks if given value matches expression:
* "^([A-Z]|[a-z]|[ ]|[-])+$"
* @param _input = input text field
*/
function isName(_input,message)
{
  var str = changeUmlauts(_input.value);
  
  if (str == "")
    return false;
  
  var re = new RegExp("^([A-Z]|[a-z]|[ ]|[-])+$");
  var ret = re.test(str);
  
  if(!ret)
  {
    if (message.length != 0)
      alert(message);
    _input.focus();
    return false;
  }
  return true;
}

/**
* checks if given value matches expression:
* "^([A-Z]|[a-z]|[ ]|[-]|[\.])+$"
* @param _input = input text field
*/
function isStreet(_input,message)
{
  var str = changeUmlauts(_input.value);
  
  if (str == "")
    return false;
  
  var re = new RegExp("^([0-9]|[A-Z]|[a-z]|[ ]|[-]|[\.])+$");
  var ret = re.test(str);
  
  if(!ret)
  {
    if (message.length != 0)
    alert(message);
    _input.focus();
    return false;
  }
  return true;
}


/**
* checks if given value matches expression:
* "^([0-9]|[A-Z]|[a-z]|[ ]|[-])+$"
* @param _input = input text field
*/
function isStreetNumber(_input,message)
{
  var str = changeUmlauts(_input.value);
  
  if (str == "")
    return false;
  
  var re = new RegExp("^([0-9]|[A-Z]|[a-z]|[ ]|[-])+$");
  var ret = re.test(str);
  
  if(!ret)
  {
    if (message.length != 0)
    alert(message);
    _input.focus();
    return false;
  }
  return true;
}


/**
* checks if given value matches expression:
* "^([0-9]|[ ])+$"
* @param _input = input text field
*/
function isZIP(_input,message)
{
  var str = _input.value;
  
  if (str == "")
    return false;
  
  var re = new RegExp("^([0-9]|[ ])+$");
  var ret = re.test(str);
  
  if(!ret)
  {
    if (message.length != 0)
    alert(message);
    _input.focus();
    return false;
  }
  return true;
}

/**
* checks if given value matches expression:
* "^([A-Z]|[a-z]|[ ]|[-]|[\(]|[\)]|[\/])+$"
* @param _input = input text field
*/
function isCity(_input,message)
{
   var str = changeUmlauts(_input.value);

  if (str == "")
    return false;
  
  var re = new RegExp("^([A-Z]|[a-z]|[ ]|[-]|[\(]|[\)]|[\/])+$");
  var ret = re.test(str);
  
  if(!ret)
  {
    if (message.length != 0)
    alert(message);
    _input.focus();
    return false;
  }
  return true;
}

/**
* checks if given value matches expression:
* "^([0-9]|[ ]|[-]|[\(]|[\)]|[\/])+$"
* @param _input = input text field
*/
function isPhone(_input,message)
{
  var str = changeUmlauts(_input.value);
  
  if (str == "")
    return false;
  
  var re = new RegExp("^([0-9]|[ ]|[-]|[\(]|[\)]|[\/])+$");
  var ret = re.test(str);
  
  if(!ret)
  {
     if (message.length != 0)
    alert(message);
    _input.focus();
    return false;
  }
  return true;
}


/**
* checks if given value matches expression:
* "^([A-za-z0-9_\.]|[\-])+([@]){1}(([A-za-z0-9_]|[\-])+([\.]))+([a-zA-Z]){2,3}$"
* @param _input = input text field
*/
function isEmail(_input,message)
{
  var str = changeUmlauts(_input.value);
  
  if (str == "")
    return false;
  
  var re = new RegExp("^([A-za-z0-9_\.]|[\-])+([@]){1}(([A-za-z0-9_]|[\-])+([\.]))+([a-zA-Z]){2,3}$");
  var ret = re.test(str);
  
  if(!ret)
  {
    if (message.length != 0)
    alert(message);
    _input.focus();
    return false;
  }
  return true;
}

/**
* checks if given value matches expression:
* "^([0-9]{2})$" and checkcs if number is between <1 and 31>
* @param _input = input text field
*/
function isDay(_input,message)
{
  var str = _input.value;
  
  if (str == "")
    return false;
  
  var re = new RegExp("^([0-9]{2})$");
  var ret = re.test(str);
  
  if(!ret || str < 1 || str > 31)
  {
    if (message.length != 0)
    alert(message);
    _input.focus();
    return false;
  }
  return true;
}

/**
* checks if given value matches expression:
* "^([0-9]{2})$" and checkcs if number is between <1 and 12>
* @param _input = input text field
*/
function isMonth(_input,message)
{
  var str = _input.value;
  
  if (str == "")
    return false;
  
  var re = new RegExp("^([0-9]{2})$");
  var ret = re.test(str);
  
  if(!ret || str < 1 || str > 12)
  {
    if (message.length != 0)
    alert(message);
    _input.focus();
    return false
  }
  return true
}

/**
* checks if given value matches expression:
* "^([0-9]{2})$" and checkcs if number is between <1 and 99>
* @param _input = input text field
*/
function isYear(_input,message)
{
  var str = _input.value;
  
  if (str == "")
    return false;
  
  var re = new RegExp("^([0-9]{2})$");
  var ret = re.test(str);
  
  if(!ret || str < 0 || str > 99)
  {
    if (message.length != 0)
    alert(message);
    _input.focus();
    return false;
  }
  return true;
}

/**
* checks if given value matches expression:
* "^([0-9]{16})$"
* @param _input = input text field
*/
function isCardNumber(_input,message)
{
  var str = _input.value;
  
  if (str == "")
    return false;
  
  var re = new RegExp("^([0-9]{16})$");
  var ret = re.test(str);
  
  if(!ret)
  {
    if (message.length != 0)
    alert(message);
    _input.focus();
    return falsel
  }
  return false;
}

/**
* checks if given value matches expression:
* "^([0-9]{3})$"
* @param _input = input text field
*/
function isCVC(_input,message)
{
  var str = _input.value;
  
  if (str == "")
    return false;
  
  var re = new RegExp("^([0-9]{3})$");
  var ret = re.test(str);
  
  if(!ret)
  {
    if (message.length != 0)
    alert(message);
    _input.focus();
    return false;
  }
  return true;
}


/**
* checks if given value matches expression:
* "^([0-9]{1,9})$"
* @param _input = input text field
*/
function isNumber(_input,message,min,max)
{
  var str = _input.value;
  
  if (str == "")
    return false;
  
  var re = new RegExp("^([0-9]{1,9})$");
  var ret = re.test(str);
  
  
  if(!ret )
  {
    if (message.length != 0)
    alert(message);
    _input.focus();
    return false;
    
  }else if (min)
  {
    if (_input.value<min)
    {
    if (message.length != 0)
    alert(message);
    _input.focus();
    return false;
    }      
  }else if (max)
  {
    if (_input.value>max)
    {
    if (message.length != 0)
    alert(message);
    _input.focus();
    return false;
    }      
  }
    return true;
}


/**
* checks if given value matches expression:
* "^([0-9]{1,9})$"
* @param _input = input text field
*/
function isBookingNumber(_input,message)
{
  var str = _input.value;
  
  if (str == "")
    return false;
  
  var re = new RegExp("^([0-9]{1,9})$");
  var ret = re.test(str);
  
  if(!ret)
  {
    if (message.length != 0)
    alert(message);
    _input.focus();
    return false;
  }
    return true;
}

function isNotEmpty(_input,message)
{
  var str = _input.value;
  
  if (str == "")
  {
    if (message.length != 0)
      alert(message);
    return false;
  }
  else
    return true;
}


/*
function CheckYear(year)
{
    if ((year%400==0)||((year%4==0)&&(year%100!=0)))
        return true;
    else
        return false;
}
*/
/*
function validateDateFormat(aStr)
{
    var re = new RegExp("^[0-9]{2}[\.]{1}[0-9]{2}[\.]{1}[0-9]{4}$");
    var ret = re.test(aStr);
    if (!ret)
        return false;
    var DateArr = aStr.split(/\./);
    if (DateArr[2] < 1900 || DateArr[2]>2030)
        return false;
    if (DateArr[1] < 1 || DateArr[1]>12)
        return false;
    var days=new Array(31,28,31,30,31,30,31,31,30,31,30,31);
    if (CheckYear(DateArr[2]) && DateArr[1]==2)
        days[1] = 29;
    if (DateArr[0] < 1 || DateArr[0]>days[DateArr[1]-1])
        return false;
    
    return true;
}
*/
/*
function validateFloatForm(form, fields)
{
    var re = new RegExp("^[0-9]{1,}$");
    for (index in fields) 
    {
        field = form[fields[index]];
        if (field.type == 'text' ||
            field.type == 'textarea' ||
            field.type == 'select-one' ||
            field.type == 'radio')
        {
            var value = '';
            if (field.type == "select-one") 
            {
                var si = field.selectedIndex;
                if (si >= 0)
                {
                    value = field.options[si].value;
                }
            }
            else
            {
                value = field.value;
            }
            if (value.length > 0)
            {
                var tempArray = value.split('.');
                var joinedString= tempArray.join('');
                var ret = re.test(joinedString);
                if (!ret)
                {
                    field.focus();
                    return field.name;
                }
                
            }

            //else
            //    return field.name;

        }
    }
    return true;
}
*/

/*
function validateIntForm(form, fields)
{
    var re = new RegExp("^[0-9]{1,}$");
    for (index in fields) 
    {
        field = form[fields[index]];
        if (field.type == 'text' ||
            field.type == 'textarea' ||
            field.type == 'select-one' ||
            field.type == 'radio')
        {
            var value = '';
            if (field.type == "select-one") 
            {
                var si = field.selectedIndex;
                if (si >= 0)
                {
                    value = field.options[si].value;
                }
            }
            else
            {
                value = field.value;
            }
            if (value.length > 0)
            {
                var ret = re.test(value);
                if (!ret)
                {
                    field.focus();
                    return field.name;
                }
                
            }

            //else
            //    return field.name;

        }
    }
    return true;
}
*/

/*
function validateDateForm(form, fields)
{
    var re = new RegExp("^[0-9]{1,}$");
    for (index in fields) 
    {
        field = form[fields[index]];
        if (field.type == 'text' ||
            field.type == 'textarea' ||
            field.type == 'select-one' ||
            field.type == 'radio')
        {
            var value = '';
            if (field.type == "select-one") 
            {
                var si = field.selectedIndex;
                if (si >= 0)
                {
                    value = field.options[si].value;
                }
            }
            else
            {
                value = field.value;
            }
            if (value.length > 0)
            {
                if (!validateDateFormat(value))
                {
                    field.focus();
                    return field.name;
                }
            }

            //else
            //    return field.name;

        }
    }
    return true;
}
*/

/*
function validateRequiredForm(form, fields)
{
    for (index in fields)
    {
        field = form[fields[index]];
        if (field.type == 'text' ||
            field.type == 'textarea' ||
            field.type == 'select-one' ||
            field.type == 'radio')
        {
            var value = '';
            if (field.type == "select-one") 
            {
                var si = field.selectedIndex;
                if (si >= 0)
                {
                    value = field.options[si].value;
                    if (value.length>0 && parseInt(value)==0)
                        value = "";
                }
            }
            else
            {
                value = field.value;
            }
            if (value.length == 0)
            {
                //field.focus();
                return field.name;
            }
        }
    }
    return true;
}
*/
