var time=0;
var tid=null;

 function openWindow (url,name,params)
 {  window.open(url,name,params);
 }

 function detectBrowser()
 {
  var userAgent=navigator.userAgent;
  var browser="";

  if (userAgent.indexOf('MSIE')!=-1)
   {
   browser="ie";
   }
  else if (userAgent.indexOf('Opera')!=-1)
   {
   browser="opera";
   }
  else if (userAgent.indexOf('Mozilla')!=-1)
   {
   browser="mozilla";
   }
  else
   {
   browser="other";
   }
  return browser;

 }

  function showhide(id)
  {   if (document.getElementById(id).style.display=='none')
     {
      if (detectBrowser()=='ie' || detectBrowser()=='other')
      {
      document.getElementById(id).style.display='block';
      }
      else
      {      document.getElementById(id).style.display='table-row';
      }
     }
   else
     {
     document.getElementById(id).style.display='none';
     }
  }

  function showblock(id)
  {
    if (detectBrowser()=='ie' || detectBrowser()=='other')
    {
    document.getElementById(id).style.display='block';
    }
    else
    {
    document.getElementById(id).style.display='table-row';
    }
  }

  function showblock_s(id)
  {
    document.getElementById(id).style.display='inline';
  }

  function showblock_ss(id)
  {
    document.getElementById(id).style.display='';
  }

  function hideblock(id)
  {
    document.getElementById(id).style.display='none';
  }

function changeFocus(formid,sid,e)
{  e = (!e) ? window.event : e;
  // get the event's target
  target = (!e.target) ? e.srcElement : e.target;
  if (target.nodeType == 3)
    target = target.parentNode;
  // get the character code of the pressed button
  code = (e.charCode) ? e.charCode :
       ((e.keyCode) ? e.keyCode :
       ((e.which) ? e.which : 0));
  // check to see if the event was keyup
  if (e.type == "keyup" && code==13)
  {
  document.getElementById('TelCodes').innerHTML='';
  document.getElementById('MobTelCodes').innerHTML='';

   var elements = document.getElementById(formid).elements.length;
   var el = new Array();
   k=0;
   for(i=0; i<elements; i++)
   {    if(document.getElementById(formid).elements[i].type == 'text' || document.getElementById(formid).elements[i].tagName == 'SELECT')
    {     el[k]=i;
     k++;
    }
   }
   for(j=0; j<el.length; j++)
   {
    if(document.getElementById(formid).elements[el[j]].id == sid && j<(elements-1))
    {     document.getElementById(formid).elements[el[j+1]].focus();

     tt=document.getElementById(formid).elements[el[j]].id+'s';

     if (document.getElementById(tt)!=undefined)
     {      document.getElementById(tt).innerHTML="";
     }

     //alert(document.getElementById(formid).elements[el[j+1]].id);
    }
   }
  }
}


function focusDate(formid,sid,len,all)
{
   var elements = document.getElementById(formid).elements.length;
   var tmp = /[a-z]{2}[0-9]{1}/;
   var el = new Array();
   k=0;
   for(i=0; i<elements; i++)
   {
    if(document.getElementById(formid).elements[i].type == 'text' || document.getElementById(formid).elements[i].tagName == 'SELECT' || document.getElementById(formid).elements[i].type == 'checkbox' || document.getElementById(formid).elements[i].type == 'radio')
    {     str_id = String(document.getElementById(formid).elements[i].id);
     if (!tmp.test(str_id))
     {
      el[k]=i;
      k++;
     }
    }
   }
   for(j=0; j<el.length-1; j++)
   {
    val=document.getElementById(formid).elements[el[j]].value;

    if(document.getElementById(formid).elements[el[j]].id == sid && j<(elements-1) && val.length==len)
    {     //alert(document.getElementById(formid).elements[el[j+1]].style.visibility);
     document.getElementById(formid).elements[el[j+1]].focus();
    }
   }
  }


function changeFocusAnk(formid,sid,e)
{
  e = (!e) ? window.event : e;
  // get the event's target
  target = (!e.target) ? e.srcElement : e.target;
  if (target.nodeType == 3)
    target = target.parentNode;
  // get the character code of the pressed button
  code = (e.charCode) ? e.charCode :
       ((e.keyCode) ? e.keyCode :
       ((e.which) ? e.which : 0));
  // check to see if the event was keyup
  if (e.type == "keyup" && code==13)
  {
   var elements = document.getElementById(formid).elements.length;
   var el = new Array();
   k=0;
   for(i=0; i<elements; i++)
   {   	tid=String(document.getElementById(formid).elements[i].id);

   	t1=tid.indexOf('sel_');
   	t2=tid.indexOf('txt_');
   	t3=tid.indexOf('multi_');
   	t4=tid.indexOf('date_');
   	t5=tid.indexOf('chk_');
   	t6=tid.indexOf('radio_');
   	t7=tid.indexOf('alt_');

    if(document.getElementById(formid).elements[i].type == 'text' || document.getElementById(formid).elements[i].tagName == 'SELECT' || document.getElementById(formid).elements[i].type == 'checkbox' || document.getElementById(formid).elements[i].type == 'radio')
    {     if (t1!=-1 || t2!=-1 || t3!=-1 || t4!=-1 || t5!=-1 || t6!=-1 || t7!=-1)
     {
      el[k]=i;
      k++;
     }
    }
   }
   for(j=0; j<el.length-1; j++)
   {

    if(document.getElementById(formid).elements[el[j]].id == sid && j<(elements-1))
    {
     document.getElementById(formid).elements[el[j+1]].focus();
     document.getElementById(formid).elements[el[j+1]].style.border='1px solid red';
     document.getElementById(formid).elements[el[j]].style.border='1px solid #ABADB3';
     //alert(document.getElementById(formid).elements[el[j+1]].id);
    }
   }
  }
}

function sendPatternSt(t,e)
{
 if (e!=0)
 {
  e = (!e) ? window.event : e;
  target = (!e.target) ? e.srcElement : e.target;
  if (target.nodeType == 3)
  target = target.parentNode;
  code = (e.charCode) ? e.charCode :
       ((e.keyCode) ? e.keyCode :
       ((e.which) ? e.which : 0));

  if (e.type == "keyup")
  {
   if (t==3 || t==10)
   {
    if (t==3)
    {
     pat=document.getElementById('Index').value;
     if (pat.length==6 && code==13)
     {
     CheckIndex(pat);
     }
     else
     {
     document.getElementById('statIndex').innerHTML="";
     }
    }
    else if (t==10  && code==13)
    {
      pat=document.getElementById('Famr').value;
      if (pat!='')
      {
      ShowFamr(pat);
      }
    }
   }
  }
 }
}


function sendPattern(t,e)
{
  var fcs;
  var fcs1;
  var tt1=document.getElementById('CityFlag').checked;
  var tt2=document.getElementById('StreetFlag').checked;
  if (e!=0)
  {
  e = (!e) ? window.event : e;
  // get the event's target
  target = (!e.target) ? e.srcElement : e.target;
  if (target.nodeType == 3)
    target = target.parentNode;
  // get the character code of the pressed button
  code = (e.charCode) ? e.charCode :
       ((e.keyCode) ? e.keyCode :
       ((e.which) ? e.which : 0));
  // check to see if the event was keyup
  if (e.type == "keyup")
  {
   if (code==40)
   {
       if (t==0)
       {
       fcs='RegionList';
       fcs1='Regions';
       }
       else if (t==1)
       {
       fcs='CityList';
       fcs1='Citys';
       }
       else if (t==2)
       {
       fcs='StreetList';
       fcs1='Streets';
       }
       else if (t==3)
       {
       fcs='Region';
       fcs1='Regions';
       }
       else if (t==4)
       {
       fcs='DistrictList';
       fcs1='Districts';
       }
       else if (t==10)
       {
       fcs='Namr'
       fcs1='Namrs';
       }
       else if (t==11)
       {
       fcs='NamrList';
       fcs1='Namrs';
       }
       else if (t==12)
       {
       fcs='OtchrList';
       fcs1='Otchrs';
       }
       else if (t==14)
       {
       fcs='TelCodeList';
       fcs1='TelCodes';
       }
       else if (t==15)
       {
       fcs='MobTelCodeList';
       fcs1='MobTelCodes';
       }
       if (document.getElementById(fcs)!=undefined)
       {
       document.getElementById(fcs).focus();
       if (t!=3 && t!=10)
       {
       document.getElementById(fcs).firstChild.selected=true;
       }
       clearTimeout(tid);
       return;
       }
     if (document.getElementById(fcs1)!=undefined)
     {
     document.getElementById(fcs1).innerHTML="";
     }

   }
  }
 }
if (tid) clearTimeout(tid);
time++;

if (time>50 && code!=40 && code!=39 && code!=38 && code!=37 && code!=36 && code!=13)
{
            if (t==0)
            {
             pat=document.getElementById('Region').value;
             document.getElementById('Regions').innerHTML='';
             //document.getElementById('Index').style.display='none';
             if (pat!='')
             {
             ShowRegion(pat);
             }
             time=0;
            }
            else if (t==1)
            {
             reg=document.getElementById('Region').value;
             pat=document.getElementById('City').value;
             document.getElementById('Citys').innerHTML='';
             //document.getElementById('Index').style.display='none';
             if (pat!='' && !tt1)
             {
             ShowCity(reg,pat);
             }
             time=0;
            }
            else if (t==2)
            {
             reg=document.getElementById('selCity').value;
             pat=document.getElementById('Street').value;
             document.getElementById('Streets').innerHTML='';
             //document.getElementById('Index').style.display='none';
             if (pat!='' && !tt2)
             {
             ShowStreet(reg,pat);
             }
             time=0;
            }
            else if (t==4)
            {
             reg=document.getElementById('Region').value;
             pat=document.getElementById('District').value;
             document.getElementById('Districts').innerHTML='';
             if (pat!='')
             {
             ShowDistrict(reg,pat);
             }
             time=0;
            }
           else if (t==11)
           {
             pat=document.getElementById('Namr').value;
             gnd=document.getElementById('Gender').value;
             document.getElementById('Namrs').innerHTML='';
             if (pat!='')
             {
             ShowNamr(gnd,pat);
             }
             time=0;
           }
            else if (t==12)
            {
             pat=document.getElementById('Otchr').value;
             gnd=document.getElementById('Gender').value;
             document.getElementById('Otchrs').innerHTML='';
             if (pat!='')
             {
             ShowOtchr(gnd,pat);
             }
             time=0;
            }
            else if (t==14)
            {             document.getElementById('TelCodes').innerHTML='';             pat=document.getElementById('TelCode').value;
             if (pat!='')
             {
             TelCodes(pat,1);
             }
             time=0;
            }
            else if (t==15)
            {             document.getElementById('MobTelCodes').innerHTML='';
             pat=document.getElementById('MobTelCode').value;
             if (pat!='')
             {
             TelCodes(pat,2);
             }
             time=0;
            }
           }
           else if (code!=13)
           {            tid=setTimeout("sendPattern("+t+",0)",0);
           }

}


function huyar(e)
{
  e = (!e) ? window.event : e;
  // get the event's target
  target = (!e.target) ? e.srcElement : e.target;
  if (target.nodeType == 3)
    target = target.parentNode;
  // get the character code of the pressed button
  code = (e.charCode) ? e.charCode :
       ((e.keyCode) ? e.keyCode :
       ((e.which) ? e.which : 0));
  // check to see if the event was keyup
  if (e.type == "keyup")
  {
   if (code==40 || code==39 || code==38 || code==37 || code==36 || code==13)
   {   	return true;
   }
   else
   {   	return false;
   }
  }
}



 function reset0(e)
 {  if (!huyar(e))
  {   document.getElementById('CityFlag').checked=false;
   document.getElementById('StreetFlag').checked=false;
   hideblock('StrType');
   hideblock('CityType');
  document.getElementById('Region').value='';
  document.getElementById('City').value='';
  document.getElementById('Street').value='';
  document.getElementById('Region').value='';
  document.getElementById('selCity').value='';
  document.getElementById('selDistrict').value='';
  document.getElementById('selStreet').value='';
  document.getElementById('TelCode').value='';
  document.getElementById('MobTelCode').value='';
  }
 }

 function reset1(e)
 {
  if (!huyar(e))
  {   document.getElementById('CityFlag').checked=false;
   document.getElementById('StreetFlag').checked=false;
   hideblock('StrType');
   hideblock('CityType');
   document.getElementById('City').value='';
   document.getElementById('Street').value='';
   document.getElementById('District').value='';
   document.getElementById('TelCode').value='';
   document.getElementById('MobTelCode').value='';
   document.getElementById('selCity').value='';
   document.getElementById('selDistrict').value='';
   document.getElementById('selStreet').value='';

   if (document.getElementById('StreetType')!=undefined)
   {
   document.getElementById('StreetType').firstChild.selected=true;
   }
   if (document.getElementById('CityType')!=undefined)
   {
   document.getElementById('CityType').firstChild.selected=true;
   }
  }
 }

 function reset1_1(e)
 {  if (!huyar(e))
  {   if (document.getElementById('StreetType')!=undefined)
   {
   document.getElementById('StreetType').firstChild.selected=true;
   }
   if (document.getElementById('CityType')!=undefined)
   {
   document.getElementById('CityType').firstChild.selected=true;
   }
  }
 }


 function reset2(e)
 {  if (!huyar(e))
  {
   if (!document.getElementById('StreetFlag').checked)
   {
   document.getElementById('Street').value='';
   document.getElementById('selStreet').value='';
   }
   if (document.getElementById('StreetType')!=undefined)
   {
   document.getElementById('StreetType').firstChild.selected=true;
   }
  }
 }

 function reset3(e)
 {
  if (!huyar(e))
  {
   document.getElementById('Namr').value='';
   document.getElementById('Otchr').value='';
  }
 }

 function reset3_1(e)
 {  if (!huyar(e))
  {
   document.getElementById('Otchr').value='';
  }
 }

 function checkForm()
 {  document.getElementById('send').disabled=true;
  document.getElementById('subm').value='1';  document.getElementById('myForm').submit();
 }

  function isemail(txt) {return /^([\w-~_]+\.)*[\w-~_]+@([\w-_]+\.){1,3}\w{2,3}$/.test(txt);}

  function checkFormA()
 {  var temp1 = /[а-я]+/i;
  var temp2 = /[0-9]+/i;
  var temp3 = /[0-9a-zа-я]+/i;
  var temp_email=/[0-9a-z_]+@[0-9a-z_^.]+.[a-z]{2,3}/i;
  var temp_data=/([0-9]{4})+(-[0-9]{2})+(-[0-9]{2})/i;
  var temp_index=/[0-9]{6}/i;
  var famr = document.getElementById('Famr').value;
  var namer = document.getElementById('Namer').value;
  var otchr = document.getElementById('Otchr').value;
  var selPol = document.getElementById('selPol').value;
  var dataro = document.getElementById('dataro').value;
  var region = document.getElementById('Region').value;
  var city = document.getElementById('City').value;
  var street = document.getElementById('Street').value;
  var numh = document.getElementById('numh').value;
  var numf = document.getElementById('numf').value;
  var email = document.getElementById('Email').value;
  var ind = document.getElementById('Index').value;
  var tel = document.getElementById('Tel').value;
  var telcode = document.getElementById('TelCode').value;
  var mobtel = document.getElementById('MobTel').value;
  var mobtelcode = document.getElementById('MobTelCode').value;

  if (!temp1.test(famr))
  {
   alert('Укажите фамилию!');
  }
  else if (!temp1.test(namer))
  {
   alert('Укажите имя!');
  }
  else if (!temp1.test(otchr))
  {
   alert('Укажите отчество!');
  }
  else if (selPol!='М' && selPol!='Ж')
  {
   alert('Укажите пол!');
  }
  else if (!temp_data.test(dataro))
  {
   alert('Укажите дату рождению!');
  }
  else if (ind!="" && !temp_index.test(ind))
  {
   alert('Укажите индекс!');
  }
  else if (region==0)
  {
   alert('Укажите регион!');
  }
  else if (!temp1.test(city))
  {
   alert('Укажите город!');
  }
  else if (!temp1.test(street))
  {
   alert('Укажите улицу!');
  }
  else if (!temp3.test(numh))
  {
   alert('Укажите дом!');
  }
  else if (!temp3.test(numf))
  {
   alert('Укажите квартиру!');
  }
  else if (tel!='' && telcode==0)
  {
   alert('Укажите код телефона!');
  }
  else if (tel!='' && !temp2.test(tel))
  {
   alert('Укажите телефон!');
  }
  else if (mobtel!='' && mobtelcode==0)
  {
   alert('Укажите код мобильного телефона!');
  }
  else if (mobtel!='' && !temp2.test(mobtel))
  {
   alert('Укажите квартиру!');
  }
  else if (!isemail(email))
  {
   alert('Укажите Email!');
  }
  else
  {
  document.getElementById('next-link').disabled=true;
  document.getElementById('myForm').submit();
  }
 }

 function nevalids (pos, field, t)
 {  var val = String(document.getElementById(field).value);
  arr=val.split(",");

  if (pos==1)
  {   document.getElementById('nv2').checked = false;
   arr[1]=0;
  }
  else if (pos==2)
  {
   document.getElementById('nv1').checked = false;
   arr[0]=0;
  }
  else if (pos==3)
  {
   document.getElementById('nv4').checked = false;
   arr[3]=0;
  }
  else if (pos==4)
  {
   document.getElementById('nv3').checked = false;
   arr[2]=0;
  }
  else if (pos==5)
  {
   document.getElementById('nv6').checked = false;
   document.getElementById('nv7').checked = false;
   arr[5]=0;
   arr[6]=0;
  }
  else if (pos==6)
  {
   document.getElementById('nv5').checked = false;
   document.getElementById('nv7').checked = false;
   arr[6]=0;
   arr[4]=0;
   arr[5]=0;
  }
  else if (pos==7)
  {
   document.getElementById('nv5').checked = false;
   document.getElementById('nv6').checked = false;
   arr[6]=0;
   arr[5]=0;
   arr[4]=0;
  }
  else if (pos==8)
  {
   document.getElementById('nv9').checked = false;
   arr[8]=0;
  }
  else if (pos==9)
  {
   document.getElementById('nv8').checked = false;
   arr[7]=0;
  }

    for (i=0;i<arr.length;i++)
    {     if ((pos-1)==i)
     {     	if (document.getElementById(t).checked)
     	{     	arr[i]=1;
     	}
     	else
     	{     	arr[i]=0;
     	}
     }
    document.getElementById(field).value = arr.toString();
   }

 }

 function changes (pos, field, t)
 {
  var val = String(document.getElementById(field).value);
  arr=val.split(",");

    for (i=0;i<arr.length;i++)
    {
     if ((pos-1)==i)
     {
     	if (document.getElementById(t).checked)
     	{
     	arr[i]=1;
     	}
     	else
     	{
     	arr[i]=0;
     	}
     }
    document.getElementById(field).value = arr.toString();
   }

 }

 function validn ()
 {  var user = document.getElementById('user').value;
  clear_validn();
  if (user==2)
  {   document.getElementById('Valid').checked = true;
   document.getElementById('Nvalid').checked = false;   alert("Нельзя!");
  }
  else
  {   showblock('tr_nv')
  }
 }

 function clear_validn ()
 {  for (i=1;i<=9;i++)
  {   document.getElementById('nv'+i).checked = false;
  }
   document.getElementById('nevalids_mask').value = '0,0,0,0,0,0,0,0,0';
 }


 function changeinfo()
 {  var t1=document.getElementById('lc1').checked;
  var t2=document.getElementById('lc2').checked;
  var t3=document.getElementById('lc3').checked;
  var t4=document.getElementById('lc4').checked;
  var t5=document.getElementById('lc5').checked;
  var t6=document.getElementById('lc6').checked;
  var t7=document.getElementById('lc7').checked;

  if (!t1 && !t2 && !t3)
  {   document.getElementById('th_li').style.display='none';
  }
  if (t1 || t2 || t3)
  {
   document.getElementById('th_li').style.display='';
  }

  if (!t4 && !t5 && !t6 && !t7)
  {
   document.getElementById('th_ci').style.display='none';
  }
  if (t4 || t5 || t6 || t7)
  {
   document.getElementById('th_ci').style.display='';
  }
 }

 function manualSwitch(tt)
 {  t1=document.getElementById(tt).checked;

  if (tt=='CityFlag' && t1)
  {   showblock('tr_dist');
   showblock_s('CityType');
   showblock_s('StrType');
   document.getElementById('StreetFlag').checked=true;
   document.getElementById('selCity').value='';
   //document.getElementById('hint_str').innerHTML='';
   //document.getElementById('hint_city').innerHTML='';
  }
  else if (tt=='CityFlag' && !t1)
  {   hideblock('tr_dist');
   hideblock('CityType');
   hideblock('StrType');
   document.getElementById('CityType').firstChild.selected=true;
   document.getElementById('StrType').firstChild.selected=true;
   document.getElementById('StreetFlag').checked=false;
   document.getElementById('selDistrict').value='';
   document.getElementById('District').value='';
   //document.getElementById('hint_str').innerHTML='Выберите из списка<br />';
   //document.getElementById('hint_city').innerHTML='Выберите из списка<br />';

  }

  if (tt=='StreetFlag' && t1)
  {
   showblock_s('StrType');
   //document.getElementById('hint_str').innerHTML='';
  }
  else if (tt=='StreetFlag' && !t1)
  {
   hideblock('StrType');
   document.getElementById('StrType').firstChild.selected=true;
   //document.getElementById('hint_str').innerHTML='Выберите из списка<br />';
  }

  //document.getElementById('myForm').submit();

  if (tt=='CityFlag')
  {   document.getElementById('City').value="";
   document.getElementById('Street').value="";
   document.getElementById('District').value="";
   document.getElementById('selCity').value="";
   document.getElementById('selStreet').value="";
   document.getElementById('selDistrict').value="";
  }

  if (tt=='StreetFlag')
  {
   document.getElementById('Street').value="";
   document.getElementById('selStreet').value="";
  }
 }

 function setRegion(val)
 {  document.getElementById('Region').value=val;
 }

 function switchPol(pol)
 {  var gn = document.getElementById(pol).value;
  document.getElementById('selPol').value=gn;
 }

 function switchData()
 {
  var dd = document.getElementById('dd').value;
  var mm = document.getElementById('mm').value;
  var yy = document.getElementById('yy').value;

  document.getElementById('dataro').value=yy+'-'+mm+'-'+dd;

 }
