  function createIFrame() {
  var id = 'f' + Math.floor(Math.random() * 99999);
  var div = document.createElement('div');
  div.innerHTML = '<iframe style="display:none" src="about:blank" id="'+id+'" name="'+id+'" onload="sendComplete(\''+id+'\')"></iframe>';
  document.body.appendChild(div);   
  return document.getElementById(id);
}

function sendForm(form, url, func) {
  if (!document.createElement) return; // not supported
  if (typeof(form)=="string") form=document.getElementById(form);
  var frame=createIFrame(); 
  frame.onSendComplete = function() { func(getIFrameXML(frame)); };
  form.setAttribute('target', frame.id);
  form.setAttribute('action', url);
  form.submit();  
}

function sendComplete(id) {  
  var iframe=document.getElementById(id);
  if (iframe.onSendComplete && typeof(iframe.onSendComplete) == 'function') iframe.onSendComplete();
}

function getIFrameXML(iframe) {
 try
 {   
   var doc=iframe.contentDocument;
   if (!doc && iframe.contentWindow) doc=iframe.contentWindow.document;
   if (!doc) doc=window.frames[iframe.id].document;
   if (!doc) return null;
   if (doc.location=="about:blank") return null;
   if (doc.XMLDocument) doc=doc.XMLDocument;   
   return doc.documentElement.firstChild.nodeValue;
 }
 catch(e)
 {    
   return "345"; 
 } 
 
}

var cnt=0;

function uploadComplete(doc) {
  if (!doc) return;  
  if (doc == "200")
  {
    window.open("RegistrationResult.aspx", '_self'); 
  }  
  else
  {   
    showErrorDialog ("common/errordlg.aspx" ,"Регистрация прошла успешно! Не у далось сохранит аватор но вы это можете сделать позже!", "Регистрация прошла успешно! Не у далось сохранит аватор но вы это можете сделать позже!");
    window.open("RegistrationResult.aspx", '_self');
  }
  
}
   
   function formSubmit()
   {      
     var form = document.getElementById("formReg"); 
     form.AvatorFile.value = form.Avator.value;
     var result = false; 
     
     if (isEmptyField (form.FIO.value)) 
     {
        showErrorDialog ("common/errordlg.aspx" ,"Не указано ФИО!", "Не указано ФИО!");
        form.FIO.focus();
        return;
     }
     
     if (!isRegOnly (form.FIO.value)) 
     {
        showErrorDialog ("common/errordlg.aspx" ,"ФИО должно содержать только буквы цифры и символы пробела!", "ФИО должно содержать только буквы цифры и символы пробела!");
        form.FIO.focus();
        return;
     }
     
     if (isEmptyField (form.Nik.value)) 
     {
        showErrorDialog ("common/errordlg.aspx" ,"Не указан Ник!", "Не указан Ник!");
        form.Nik.focus();
        return;
     }
     
     if (!isRegOnly (form.Nik.value)) 
     {
        showErrorDialog ("common/errordlg.aspx" ,"Неокректно указан Ник!", "Неокректно указан Ник!");
        form.Nik.focus();
        return;
     }
     
     if (isEmptyField (form.Login.value)) 
     {
        showErrorDialog ("common/errordlg.aspx" ,"Не указан Логин!", "Не указан Логин!");
        form.Login.focus();
        return;
     }
     
     if (!isRegOnly  (form.Login.value)) 
     {
        showErrorDialog ("common/errordlg.aspx" ,"Некорректно указан Логин!", "Некорректно указан Логин!");
        form.Login.focus();
        return;
     }
     
     if (isEmptyField (form.Password.value)) 
     {
        showErrorDialog ("common/errordlg.aspx" ,"Не указан Пароль!", "Не указан Пароль!");
        form.Password.focus();
        return;
     }
     
     var birthDayD = form.BirthDayD.value;
     if (!isDigitOnly(birthDayD, false) || parseFloat(birthDayD) > 31 )
     {
        showErrorDialog ("common/errordlg.aspx" ,"Некорректно указана дата рождения!", "Некорректно указана дата рождения!");
        form.BirthDayD.focus();
        return;
     }
     
     var birthDayM = form.BirthDayM.value;
     if (!isDigitOnly(birthDayM, false) || parseFloat(birthDayM) > 12 )
     {
        showErrorDialog ("common/errordlg.aspx" ,"Некорректно указана дата рождения!", "Некорректно указана дата рождения!");
        form.BirthDayM.focus();
        return;
     }
     
     var birthDayY = form.BirthDayY.value;
     if (!isDigitOnly(birthDayY, false) || parseFloat(birthDayY) > 2009  || parseFloat(birthDayY) < 1905)
     {
        showErrorDialog ("common/errordlg.aspx" ,"Некорректно указана дата рождения!", "Некорректно указана дата рождения!");
        form.BirthDayY.focus();
        return;
     }
     
     if (isEmptyField (form.Email.value) || !validateEmail(form.Email.value)) 
     {
        showErrorDialog ("common/errordlg.aspx" ,"Некоректно указан e-mail!", "Некоректно указан e-mail!");
        form.Email.focus();
        return;    
     }
     
     if(form.Avator.value != null && form.Avator.value != "")
     {
        var fileName = form.Avator.value;
        var arrayF = fileName.split (".");            
        fileName = arrayF[arrayF.length - 1];
        if(fileName.toUpperCase() != "GIF" && fileName.toUpperCase() != "JPG" && fileName.toUpperCase() != "JPEG")
        {
          showErrorDialog ("common/errordlg.aspx" ,"Файл должет иметь расширение GIF, JPG или JPEG!", "Файл должет иметь расширение GIF, JPG или JPEG!");
          form.Avator.focus();
          return;
        }
     }
     
     try
     {
        if(form.Id.value == null || form.Id.value == "")
        {         
            var httpReq = new HTTPRequest();                            
            httpReq.add( "FIO", form.FIO.value );
            httpReq.add( "Nik", form.Nik.value );
            httpReq.add( "Login", form.Login.value );
            httpReq.add( "Password", form.Password.value );
            httpReq.add( "BirthDayD", form.BirthDayD.value );
            httpReq.add( "BirthDayM", form.BirthDayM.value );
            httpReq.add( "BirthDayY", form.BirthDayY.value );
            httpReq.add( "Country", form.Country.value );
            httpReq.add( "Region", form.Region.value );
            httpReq.add( "Email", form.Email.value ); 
            httpReq.add( "IsFioView", form.IsFioView.checked );
            httpReq.add( "IsBirthDayView", form.IsBirthDayView.checked );
            httpReq.add( "IsCountryView", form.IsCountryView.checked );
            httpReq.add( "IsRegionView", form.IsRegionView.checked );                        
            httpReq.add( "CptId", form.CptId.value ); 
            httpReq.add( "Captcha", form.Captcha.value ); 
            httpReq.send( "AccountAct.Registration.do" );    
            if(form.Avator.value == null || form.Avator.value == "")
            {
                window.open("RegistrationResult.aspx", '_self'); 
            }
            else
            {            
                //form.submit(); 
                form.Id.value = httpReq.getResponse( "/Id" );
                form.FIO.readOnly = 1;
                form.Nik.readOnly = 1;
                form.Login.readOnly = 1;
                form.Password.readOnly = 1;
                form.BirthDayD.readOnly = 1;
                form.BirthDayM.readOnly = 1;
                form.BirthDayY.readOnly = 1;
                form.Country.readOnly = 1;
                form.Region.readOnly = 1;
                form.Email.readOnly = 1;
                form.Captcha.readOnly = 1;
                sendForm('formReg','AccountAct.AvatorAdd.do',uploadComplete,'resultDiv')
                                            
            }
        }
        else
        {
        
            if(form.Avator.value == null || form.Avator.value == "")
            {
                window.open("RegistrationResult.aspx", '_self'); 
            }
            else
            {           
                
                sendForm('formReg','AccountAct.AvatorAdd.do',uploadComplete,'resultDiv')            
            }        
            
        }        
     }
     catch(e)
    {           
        showErrorDialog ( "common/errordlg.aspx" , e.description, e.description);
    }        
   }

