function checkPwd(str,fid) {
  var error = "";
  var illegalChars = /[\W_]/; // allow only letters and numbers
  if ((str.length < 6) || (str.length > 10)) {
    error = "Пароль должен быть от 5 до 10 символов.\n";
  } else if (illegalChars.test(str)) {
    error = "Пароль может содержать только буквы и цифры.\n";
  }
  if (error != "") {
    alert(error);
    inputText = document.getElementById(fid);
    inputText.focus();
    return true;
  }
}

function buildQueryString(theFormName,oper) {
  theForm = document.forms[theFormName];
  var d = new Date();
  var unique = d.getTime() + '' + Math.floor(1000 * Math.random());
  var qs = '?UN=' + unique + '&opr=' + oper;
  for (e=0;e<theForm.elements.length;e++) {
    if (theForm.elements[e].name!='') {
      if (theForm.elements[e].name == 'profile' || theForm.elements[e].name == 'rtype' || theForm.elements[e].name == 'man' || theForm.elements[e].name == 'want') {
        if (!theForm.elements[e].checked) {
          continue;
        }
      }
      qs+='&'+theForm.elements[e].name+'='+theForm.elements[e].value;
    }
  }
  return qs
}

var IFrameObj;
function callToServer(theFormName,oper) {
  if (!document.createElement) {return true};
  var IFrameDoc;
  var URL = 'dojsrs.asp' + buildQueryString(theFormName,oper);
  if (!IFrameObj && document.createElement) {
    // create the IFrame and assign a reference to the
    // object to our global variable IFrameObj.
    // this will only happen the first time
    // callToServer() is called
    try {
      var tempIFrame=document.createElement('iframe');
      tempIFrame.setAttribute('id','RSIFrame');
      tempIFrame.style.border='0px';
      tempIFrame.style.width='0px';
      tempIFrame.style.height='0px';
      IFrameObj = document.body.appendChild(tempIFrame);

      if (document.frames) {
        // this is for IE5 Mac, because it will only
        // allow access to the document object
        // of the IFrame if we access it through
        // the document.frames array
        IFrameObj = document.frames['RSIFrame'];
      }
    } catch(exception) {
      // This is for IE5 PC, which does not allow dynamic creation
      // and manipulation of an iframe object. Instead, we'll fake
      // it up by creating our own objects.
      iframeHTML='<iframe id="RSIFrame" style="';
      iframeHTML+='border:0px;';
      iframeHTML+='width:0px;';
      iframeHTML+='height:0px;';
      iframeHTML+='"><\/iframe>';
      document.body.innerHTML+=iframeHTML;
      IFrameObj = new Object();
      IFrameObj.document = new Object();
      IFrameObj.document.location = new Object();
      IFrameObj.document.location.iframe = document.getElementById('RSIFrame');
      IFrameObj.document.location.replace = function(location) {
        this.iframe.src = location;
      }
    }
  }

  if (navigator.userAgent.indexOf('Gecko') !=-1 && !IFrameObj.contentDocument) {
    // we have to give NS6 a fraction of a second
    // to recognize the new IFrame
    setTimeout('callToServer("'+theFormName+'","'+oper+'")',10);
    return false;
  }

  if (IFrameObj.contentDocument) {
    // For NS6
    IFrameDoc = IFrameObj.contentDocument;
  } else if (IFrameObj.contentWindow) {
    // For IE5.5 and IE6
    IFrameDoc = IFrameObj.contentWindow.document;
  } else if (IFrameObj.document) {
    // For IE5
    IFrameDoc = IFrameObj.document;
  } else {
    return true;
  }

  IFrameDoc.location.replace(URL);
  return false;
}

function handleResponse(msg,err,bid) {
  var message = '';
  if (err == 0) {
    var theFormDiv = document.getElementById('theFormDiv'+bid);
    var responseMessage = document.getElementById('responseMessage'+bid);
    theFormDiv.style.display = 'none';
    message = '<h3>'+msg+'<\/h3>';
    if (bid < 10) {
      message += '<p>Если хотите послать с помощью формы новые данные, нажмите кнопку&nbsp;&nbsp;';
      message += '<button onclick="showForm('+bid+'); return false;" style="width:25px;height:15px;"><\/p>';
      responseMessage.innerHTML = message;
      responseMessage.style.display = 'block';
    } else if (bid == 12) {
      var helpText = document.getElementById("helpText12");
      helpText.style.display = 'none';
      message += '<p>На указанный адрес было выслано письмо с параметрами доступа для ввода их <a href="#" onClick="showMain(); return false;">в форме авторизации<\/a><\/p>';
      responseMessage.innerHTML = message;
      responseMessage.style.display = 'block';
    } else if (bid == 14) {
      responseMessage.innerHTML = message;
    }
  } else if (err < 0) {
    if (err == -1) {
      document.forms['emailForm10'].reset();
      var helpText = document.getElementById("helpText10");
      helpText.style.display = 'none';
      var theFormDiv = document.getElementById("theFormDiv10");
      theFormDiv.style.display = 'none';
      var responseMessage = document.getElementById('responseMessage12');
      responseMessage.style.display = 'none';

      helpText = document.getElementById("helpText11");
      helpText.style.display = 'block';
      helpText = document.getElementById("helpText11p1");
      helpText.style.display = 'block';
    } else if (err == -2) {
      var helpText = document.getElementById("helpText11");
      helpText.style.display = 'none';
      helpText = document.getElementById("helpText11p2");
      helpText.style.display = 'none';
      var responseMessage = document.getElementById("responseMessage11");
      responseMessage.style.display = 'none';
      var theFormDiv = document.getElementById("theFormDiv11");
      theFormDiv.style.display = 'none';

      document.forms['emailForm10'].reset();
      helpText = document.getElementById("helpText10");
      helpText.style.display = 'block';
      theFormDiv = document.getElementById("theFormDiv10");
      theFormDiv.style.display = 'block';
    } else if (err == -3) {
      var helpText = document.getElementById("helpText11p2");
      helpText.style.display = 'none';
      var theFormDiv = document.getElementById("theFormDiv11");
      theFormDiv.style.display = 'none';
      var responseMessage = document.getElementById("responseMessage11");
      responseMessage.style.display = 'block';
    }
  } else {
    alert(msg);
    if (err == 4) {
      var inputEmail = document.getElementById('id_subs_email'+bid);
      inputEmail.focus();
      inputEmail.select();
    } else if (err == 6) {
      var inputRequire = document.getElementById('id_req_text'+bid);
      inputRequire.focus();
    } else if (err == 15 || err || 16) {
      var theFormDiv = document.getElementById('theFormDiv'+bid);
      var responseMessage = document.getElementById('responseMessage'+bid);
      responseMessage.innerHTML = msg;
    }
  }
}

function showForm(bid) {
  var theFormDiv = document.getElementById('theFormDiv'+bid);
  theFormDiv.style.display = 'block';
  document.forms['emailForm'+bid].reset();
  var responseMessage = document.getElementById('responseMessage'+bid);
  responseMessage.style.display = 'none';
}

function checkEmail(bid) {
  var inputEmail = document.getElementById('id_subs_email'+bid);
  var emailFilter = /^.+@.+\..{2,4}$/;
  if (!(emailFilter.test(inputEmail.value))) {
    alert("Пожалуйста введите электронный адрес в правильном формате");
    inputEmail.focus();
    inputEmail.select();
    return false;
  }
  var illegalChars= /[\(\)\<\>\,\;\:\\\/\"\[\]]/;
  if (inputEmail.value.match(illegalChars)) {
    alert("Электронный адрес содержит нелегальные символы");
    inputEmail.focus();
    inputEmail.select();
    return false;
  }
  return true;
}

function checkEmail_callServer(bid,theFormName,oper) {
  if (checkEmail(bid)) {
    return callToServer(theFormName,oper);
  }
  return false;
}

function TextEmpty(str,fname,fid) {
  if (str == "") {
    alert("Не заполнено обязательное поле '" + fname + "'");
    inputText = document.getElementById(fid);
    inputText.focus();
    return true;
  }
  return false;
}


