// Кодова таблица 'UTF-8'

function uper()
  {
	var str=this.toUpperCase();
	return(str);
	}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

function lower()
  {
	var str=this.toLowerCase();
	return(str);
	}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

String.prototype.up=uper;
String.prototype.low=lower;

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

function first_up(str)
  {
	var ch = str.substr(0,1);
	var ch_up = ch.up();
	str1 = str.substr(1, (str.length - 1))
	str = ch_up.concat(str1);
	return(str);
	}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

function is_digit(fieldName, fieldValue, unsigned, minDigits, maxDigits, decAllowed)
  {
  //decAllowed = how many digits after tehe dot are allowed.
  if(unsigned == 1)
    {
    if(decAllowed == 0)
      {
      var regexp = /^(\d)+$/;
      }
    else
      {
      var regexp = /^(\d)+\.?(\d)*$/;
      }
    }
  else
    {
    if(decAllowed == 0)
      {
      var regexp = /^-?(\d)+$/;
      }
    else
      {
      var regexp = /^-?(\d)+\.?(\d)*$/;
      }
    }
  if(regexp.test(fieldValue))
    {
    var a = new Array();
    a = fieldValue.split(/\./);
    var str_digit_only = a[0].replace(/\D/g, "");
    if((str_digit_only.length >= minDigits) && (str_digit_only.length <= maxDigits))
      {
      if(fieldValue.indexOf('.') == -1)
        {
        fieldValue += ".";
        }
      dectext = fieldValue.substring(fieldValue.indexOf('.')+1, fieldValue.length);
      if(dectext.length <= decAllowed)
        {
        ; // Good :)
        }
      else
        {
        alert ("Грешка! Моля, въведете число с не повече от " + decAllowed + " цифри след десетичната точка.");
        fieldName.select();
        fieldName.focus();
        }
      }
    else
      {
      if(minDigits == maxDigits)
        {
        if(decAllowed == 0)
          {
          msg = "Грешка! Моля, въведете число с точно " + minDigits + " цифри.";
          }
        else
          {
          msg = "Грешка! Моля, въведете число с точно " + minDigits + " цифри преди десетичната точка.";
          }
        }
      else
        {
        if(decAllowed == 0)
          {
          msg = "Грешка! Моля, въведете число с не по-малко от " + minDigits + " и не повече от " + maxDigits + " цифри.";
          }
        else
          {
          msg = "Грешка! Моля, въведете число с не по-малко от " + minDigits + " и не повече от " + maxDigits + " цифри преди десетичната точка.";
          }
        }
      alert (msg);
      fieldName.select();
      fieldName.focus();
      }
    }
  else
    {
    alert("Грешка! Въведеният стринг не е коректно изписано число.");
    fieldName.select();
    fieldName.focus();
    }
  }

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

function is_email(fieldName, fieldValue)
  {
  if(fieldValue == "@")
    {
    ; //Good :)
    }
  else
    {
    var regexp = /^(([\-\w]+)\.?)+@(([\-\w]+)\.?)+\.[a-zA-Z]{2,4}$/;
    if(!regexp.test(fieldValue))
      {
      alert("Грешка! Въведеният стринг не е коректно изписан електронен адрес.");
      fieldName.select();
      fieldName.focus();
      }
    }
  }

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

function is_web(fieldName, fieldValue)
  {
  if(fieldValue == "http://")
    {
    ; //Good :)
    }
  else
    {
    var regexp = /^http:\/\/(([\-\w]+)\.?)+\.(([\-\w]+)\.?)+\.[a-zA-Z]{2,4}/;
    if(!regexp.test(fieldValue))
      {
      alert("Грешка! Въведеният стринг не е коректно изписан интернет адрес.");
      fieldName.select();
      fieldName.focus();
      }
    }
  }

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

function is_word(fieldName, fieldValue, lang, minDigits, maxDigits, format, space)
  {
  if(lang == "bg") // cyrilic
    {            // 123456789012345678901234567890123456789012345678901234567890
    if(space == 'Yes')
      {
      var regexp = /^[а-яА-Я]+\s?[а-яА-Я]+\s?[а-яА-Я]+$/;
      }
    else
      {
      var regexp = /^[а-яА-Я]+$/;
      }
    }
  else if(lang == "en") // latin
    {
    if(space == 'Yes')
      {
      var regexp = /^[a-zA-Z]+\s?[a-zA-Z]+\s?[a-zA-Z]+$/;
      }
    else
      {
      var regexp = /^[a-zA-Z]+$/;
      }
    }
  else
    {
    alert("Грешка! Code Page ???");
    }

  if(regexp.test(fieldValue))
    {
    if((fieldValue.length >= minDigits) && (fieldValue.length <= maxDigits))
      {
      ; // Good :)
      }
    else
      {
      alert("Грешка! Моля, въведете стринг с не по-малко от " + minDigits + " и не повече от " + maxDigits + " букви.");
      fieldName.select();
      fieldName.focus();
      }
    }
  else
    {
    alert("Грешка! Във въведения стринг има некоректни символи.");
    fieldName.select();
    fieldName.focus();
    }
  if(format == 1) // All uper case
    {
    fieldName.value = fieldValue.up();
    }
  else if(format == 2) // All lower case
    {
    fieldName.value = fieldValue.low();
    }
  else if(format == 3) // First uper, others lower case
    {
    fieldName.value = first_up(fieldValue.low());
    }
  else // No format
    {
    ;// Do nothing
    }
  }

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

function is_pass(fieldName, fieldValue, minDigits, maxDigits)
  {
  var regexp = /^[A-Za-z0-9_-]+$/;
  if(regexp.test(fieldValue))
    {
    if((fieldValue.length >= minDigits) && (fieldValue.length <= maxDigits))
      {
      ; // Good :)
      }
    else
      {
      alert("Грешка! Моля, въведете стринг с не по-малко от " + minDigits + " и не повече от " + maxDigits + " букви.");
      fieldName.select();
      fieldName.focus();
      }
    }
  else
    {
    alert("Грешка! Във въведения стринг има некоректни символи.");
    fieldName.select();
    fieldName.focus();
    }
  }

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

function is_date(fieldName, fieldValue, format)
  {
  if(format == 1) // 22:55
    {
    var regexp = /^(\d){2}:(\d){2}$/;
    }
  else if(format == 2) // 22.05.2000
    {
    var regexp = /^(\d){2}\.(\d){2}\.(\d){4}$/;
    }
  else if(format == 3) // 22.05.2000, 22:55
    {
    var regexp = /^(\d){2}\.(\d){2}\.(\d){4},\s(\d){2}:(\d){2}$/;
    }
  else // No format
    {
    alert("Format Missing!");
    }
  if(regexp.test(fieldValue))
    {
    ; // Good :)
    }
  else
    {
    alert("Грешка! Невалиден формат на датата.");
    fieldName.select();
    fieldName.focus();
    }
  }