var
error_message = '',
validators = {
 'password' : /^[0-9a-zA-Z\.\-\_]*$/,
 'name'     : /^[a-zA-Z]*$/,
 'login'    : /^[a-zA-Z0-9\_]*$/,
 'full_name': /^[\sa-zA-Z]*$/,
 'address'  : /^[\s0-9a-zA-Z\.\-\\\/]*$/,
 'text'     : /^.*$/,
 'email'    : /^[\w-\.]+\@[\w\.-]+\.[a-z]{2,4}$/,
 'phone'    : /^[\d\.\s\-]+$/,
 'integer'  : /^[\+\-]?\d*$/,
 'integer2'  : /^[\+]?\d*$/,
 'ref_number'     : /^[A-Za-z0-9]{1,10}$/,
 'code'     : /^(SA|CT|PE|CS)[0-9]{8}$/,
 
 'office_number'  : /^([1-9]{1}\d{2})|(\d{1}[1-9]{1}\d{1})|(\d{2}[1-9]{1})$/,

 'float'    : /^[\+\-]?\d*\.?\d*$/
}
  
function valid(form_field, type, display_name, allow_empty){
/*  form_field.value == display_name - this is for the cases where the display name replaces the empty value */
  if (form_field.value.length == 0 || form_field.value == display_name){
    if (!allow_empty){
      if (error_message == '') form_field.focus();
      error_message = error_message + display_name + ' is a required field!' + '\n';
      return false;
    }
  } else {
    if (!validators[type].test(form_field.value)){
      if (error_message == '') form_field.focus(); 
      error_message = error_message + '"' + form_field.value + '" is not valid value for ' + display_name + '!' + '\n';
      return false;
    }
  }
  return true;
}

function valid_feature(form_field, type, display_name, allow_empty, not_null){

  if (form_field.value.length == 0 || form_field.value == display_name || form_field.value == 0){
    if (!allow_empty){
      if (error_message == '') form_field.focus();
      error_message = error_message + display_name + ' is a required field!' + '\n';
      return false;
    }
  } else {
    if (!validators[type].test(form_field.value)){
      if (error_message == '') form_field.focus(); 
      error_message = error_message + '"' + form_field.value + '" is not valid value for ' + display_name + '!' + '\n';
      return false;
    }
  }
  return true;
}

function valid_password(form_field, retype_field, display_name, allow_empty){
  if (form_field.value.length == 0){
    if (!allow_empty){
      if (error_message == '') form_field.focus();
      error_message = error_message + display_name + ' is a required field!' + '\n';
      return false;
    }
  } else {
    if (!validators['password'].test(form_field.value)){
      if (error_message == '') form_field.focus();
      error_message = error_message + 'Allowed characters for ' + display_name + ' are (0-9, a-z, A-Z, ".", "-" and "_")!' + '\n';
      return false;
    }
    else if (form_field.value != retype_field.value){
      if (error_message == '') form_field.focus();
      error_message = error_message + 'The ' + display_name + ' was not retyped correctly!' + '\n';
      retype_field.value = '';
      return false;
    }
  }
  return true;
}

function display_errors(){
  if (error_message != ''){
    alert(error_message);
    error_message = '';
  }
}


			function setParams(right,left,price) {
				document.upload_form.pages_num.value=left;
				document.upload_form.days_num.value=right;
				document.upload_form.price.value=price;
			}
			
			function validate_form(form)
			{
				is_valid = true;
				is_valid = valid(form.name, 'text', 'Name', false) && is_valid;
				is_valid = valid(form.email, 'email', 'Email', false) && is_valid;

				display_errors();
				return is_valid;
			}
