var xmlHttp;

function go(mode, id, param) {
  var f = document.forms['index'];
  f.elements['mode'].value = mode;
  f.elements['id'].value = id;
  f.elements['param'].value = param;
  f.elements['print'].value = '';
  f.target = '_self';
  f.submit();
}
function goPrint(mode, id) {
  var f = document.forms['index'];
  f.elements['mode'].value = mode;
  f.elements['id'].value = id;
  f.elements['param'].value = '';
  f.elements['print'].value = 'yes';
  f.target = '_blank';
  f.submit();
}
function goExtSearch() {
  var f = document.forms['goextsearch'];
  f.elements['query'].value = document.forms['search'].elements['query'].value;
  f.elements['sort'].value = document.forms['search'].elements['sort'].value;
  f.submit();
}
function toArchive() {
  go('arhnew', '', '');
}
function toSearch() {
  go('search', '', '');
}
function getList(id) {
  go('list', id);
}
function getCompany(id, param) {
  go('legal', id, param);
}
function getLegal(id) {
  go('legal', id);
}
function getLegalPage(id) {
  var f = document.forms['index'];
  f.elements['mode'].value = 'legal';
  f.elements['id'].value = id;
  f.elements['param'].value = '';
  f.elements['print'].value = '';
  f.target = '_blank';
  f.submit();
}
function getInfo(id) {
  go('info', id);
}
function getDocs(id, type) {
  go('docs', id, type);
}
function setStatus(string) {
  window.status = string;
}
function clearStatus() {
  setStatus('');
}
function getDoc(id, name, target) {
  var f = document.forms['data'];
  f.target = target;
  f.action = 'doc/' + name;
  f.elements['id'].value = id;
  f.submit();
}
function getNews(id) {
  getDoc(id, 'news/news.html','_blank');
}
function getFile(id, name) {
  if(navigator.appName == 'Microsoft Internet Explorer') {
    if (name.toLowerCase().indexOf('.smm') > 0) {
      getDoc(id, 'file/' + name,'_self');
    } else {
      getDoc(id, 'file/' + name,'_blank');
    }
  } else {
    getDoc(id, 'file/' + name,'_self');
  }
}
function getUnit(uid) {
  var f = document.forms['unit'];
  f.elements['uid'].value = uid;
  f.submit();
}
function checkParam(form) {
  if (form.param.value.length == 0) {
    alert('Не задана строка поиска!');
    form.param.focus();
    return false;
  }
  return true;
}
function checkString(form) {
  if (form.string.value.length == 0) {
    alert('Не задана строка поиска!');
    form.string.focus();
    return false;
  }
  return true;
}
function setSearch (mode, string) {
  var f = document.forms['search'];
  f.elements['mode'].value = mode;
  f.elements['string'].value = string;
}

function goPage(startatpos, maxres) {
  var f = document.forms['search'];
  var now = new Date();
  if (f.elements['level'].value == 0) {
    f.elements['query'].value      = f.elements['query0'].value;
    f.elements['st'].value         = f.elements['st0'].value;
    f.elements['sr'].value         = f.elements['sr0'].value;
    f.elements['startat'].value    = startatpos;
    f.elements['maxresults'].value = maxres;
    f.elements['CBSiR'].value      = 'off';
  } else {
    f.elements['query'].value      = f.elements['query0'].value;
    f.elements['st'].value         = f.elements['st0'].value;
    f.elements['sr'].value         = f.elements['sr0'].value;
    for (i = 1; i <= f.elements['level'].value; i++) {
      qname  = 'query' + (i - 1);
      stname = 'st' + (i - 1);
      srname = 'sr' + (i - 1);
      qname1  = 'query' + i;
      stname1 = 'st' + i;
      srname1 = 'sr' + i;
      f.elements[qname].value      = f.elements[qname1].value;
      f.elements[stname].value     = f.elements[stname1].value;
      f.elements[srname].value     = f.elements[srname1].value;
    }
    f.elements['startat'].value    = startatpos;
    f.elements['maxresults'].value = maxres;
    f.elements['CBSiR'].checked    = 1;
    f.elements['CBSiR'].value      = 'on';
    f.elements['level'].value      = f.elements['level'].value - 1;
  }
  f. elements['nocache'].value = now.valueOf();
  f.submit();
}

function goPageExt(startatpos, maxres) {
  var f = document.forms['extsearch'];
  var now = new Date();
  f.elements['startat'].value    = startatpos;
  f.elements['maxresults'].value = maxres;
  f. elements['nocache'].value = now.valueOf();
  f.submit();
}

function showOKONH (a) {
  document.getElementById('okonh_tr').style.display = 'block'; 
  document.getElementById('okved_tr').style.display = 'none';
  document.getElementById('okonh_tr').blur();
}

function showOKVED (a) {
  document.getElementById('okonh_tr').style.display = 'none'; 
  document.getElementById('okved_tr').style.display = 'block';
  document.getElementById('okved_tr').blur();
}

function selectDocType (elem) {
  var f = document.forms['search'];
  if (elem.name == 'doctype0') {
    if (elem.checked) {
      f.elements['doctype1'].checked = false;
      f.elements['doctype2'].checked = false;
      f.elements['doctype3'].checked = false;
      f.elements['doctype4'].checked = false;
      f.elements['doctype5'].checked = false;
      f.elements['doctype6'].checked = false;
      f.elements['doctype7'].checked = false;
      f.elements['doctype8'].checked = false;
      f.elements['doctype9'].checked = false;
    } else {
      f.elements['doctype0'].checked = true;
    }
  } else {
    if (elem.checked) {
      if (f.elements['doctype1'].checked && f.elements['doctype2'].checked && f.elements['doctype3'].checked && f.elements['doctype4'].checked && f.elements['doctype5'].checked && f.elements['doctype6'].checked && f.elements['doctype7'].checked && f.elements['doctype8'].checked && f.elements['doctype9'].checked) {
        f.elements['doctype0'].checked = true;
        f.elements['doctype1'].checked = false;
        f.elements['doctype2'].checked = false;
        f.elements['doctype3'].checked = false;
        f.elements['doctype4'].checked = false;
        f.elements['doctype5'].checked = false;
        f.elements['doctype6'].checked = false;
        f.elements['doctype7'].checked = false;
        f.elements['doctype8'].checked = false;
        f.elements['doctype9'].checked = false;
      } else {
        f.elements['doctype0'].checked = false;
      }
    } else {
      if (!f.elements['doctype1'].checked && !f.elements['doctype2'].checked && !f.elements['doctype3'].checked && !f.elements['doctype4'].checked && !f.elements['doctype5'].checked && !f.elements['doctype6'].checked && !f.elements['doctype7'].checked && !f.elements['doctype8'].checked && !f.elements['doctype9'].checked) {
        f.elements['doctype0'].checked = true;
        f.elements['doctype1'].checked = false;
        f.elements['doctype2'].checked = false;
        f.elements['doctype3'].checked = false;
        f.elements['doctype4'].checked = false;
        f.elements['doctype5'].checked = false;
        f.elements['doctype6'].checked = false;
        f.elements['doctype7'].checked = false;
        f.elements['doctype8'].checked = false;
        f.elements['doctype9'].checked = false;
      } else {
        f.elements['doctype0'].checked = false;
      }
    }
  }
}

function selectRegion () {
  var reg = document.forms["search"].elements["region_select"];
  var reg_sel = reg.options[reg.selectedIndex];
  var sel = document.forms["search"].elements["region_selected"];
  var found = false;

  if (reg_sel.value == 0) { return; }

  for (i = 0; i < sel.options.length; i++) {
    var op = sel.options[i];
    if (op.value == reg_sel.value) {
      alert('Этот регион уже выбран.');
      found = true;
      break;
    }
  }

  if (!found) {
    if ((sel.options.length == 1) && (sel.options[0].value == 0)) {
      (sel.options.remove) ? sel.options.remove(0) : sel.remove(0);
    }

    var RegOption = document.createElement("OPTION");
    RegOption.text = reg_sel.text;
    RegOption.value = reg_sel.value;
    (sel.options.add) ? sel.options.add(RegOption) : sel.add(RegOption, null);
  }
}

function deselectRegion () {
  var sel = document.forms["search"].elements["region_selected"];

  if (sel.selectedIndex == -1) { alert('Не выбран ни один регион'); return; }

  var sel_sel = sel.options[sel.selectedIndex];

  if (sel_sel.value == 0) { return; }

  (sel.options.remove) ? sel.options.remove(sel.selectedIndex) : sel.remove(sel.selectedIndex);

  if (sel.options.length == 0) {
      var RegOption = document.createElement("OPTION");
      RegOption.text = 'все';
      RegOption.value = 0;
      (sel.options.add) ? sel.options.add(RegOption) : sel.add(RegOption, null);
  }
}

function selectOKONH () {
  var okonh = document.forms["search"].elements["okonh_select"];
  var okonh_sel = okonh.options[okonh.selectedIndex];
  var sel = document.forms["search"].elements["okonh_selected"];
  var found = false;

  if (okonh_sel.value == 0) { return; }

  if (sel.options.length > 20) { alert('Выбрано слишком много отраслей.'); return; }

  for (i = 0; i < sel.options.length; i++) {
    var op = sel.options[i];
    if (op.value == okonh_sel.value) {
      alert('Эта отрасль уже выбрана.');
      found = true;
      break;
    }
  }

  if (!found) {
    if ((sel.options.length == 1) && (sel.options[0].value == 0)) {
      (sel.options.remove) ? sel.options.remove(0) : sel.remove(0);
    }

    var OKONHOption = document.createElement("OPTION");
    OKONHOption.text = okonh_sel.text;
    OKONHOption.value = okonh_sel.value;
    (sel.options.add) ? sel.options.add(OKONHOption) : sel.add(OKONHOption, null);
  }
}

function deselectOKONH () {
  var sel = document.forms["search"].elements["okonh_selected"];

  if (sel.selectedIndex == -1) { alert('Не выбрана ни одна отрасль'); return; }

  var sel_sel = sel.options[sel.selectedIndex];

  if (sel_sel.value == 0) { return; }

  (sel.options.remove) ? sel.options.remove(sel.selectedIndex) : sel.remove(sel.selectedIndex);

  if (sel.options.length == 0) {
      var OKONHOption = document.createElement("OPTION");
      OKONHOption.text = 'все';
      OKONHOption.value = 0;
      (sel.options.add) ? sel.options.add(OKONHOption) : sel.add(OKONHOption, null);
  }
}

function selectOKVED () {
  var okved = document.forms["search"].elements["okved_select"];
  var okved_sel = okved.options[okved.selectedIndex];
  var sel = document.forms["search"].elements["okved_selected"];
  var found = false;

  if (okved_sel.value == 0) { return; }

  if (sel.options.length > 20) { alert('Выбрано слишком много отраслей.'); return; }

  for (i = 0; i < sel.options.length; i++) {
    var op = sel.options[i];
    if (op.value == okved_sel.value) {
      alert('Эта отрасль уже выбрана.');
      found = true;
      break;
    }
  }

  if (!found) {
    if ((sel.options.length == 1) && (sel.options[0].value == 0)) {
      (sel.options.remove) ? sel.options.remove(0) : sel.remove(0);
    }

    var OKVEDOption = document.createElement("OPTION");
    OKVEDOption.text = okved_sel.text;
    OKVEDOption.value = okved_sel.value;
    (sel.options.add) ? sel.options.add(OKVEDOption) : sel.add(OKVEDOption, null);
  }
}

function deselectOKVED () {
  var sel = document.forms["search"].elements["okved_selected"];

  if (sel.selectedIndex == -1) { alert('Не выбрана ни одна отрасль'); return; }

  var sel_sel = sel.options[sel.selectedIndex];

  if (sel_sel.value == 0) { return; }

  (sel.options.remove) ? sel.options.remove(sel.selectedIndex) : sel.remove(sel.selectedIndex);

  if (sel.options.length == 0) {
      var OKVEDOption = document.createElement("OPTION");
      OKVEDOption.text = 'все';
      OKVEDOption.value = 0;
      (sel.options.add) ? sel.options.add(OKVEDOption) : sel.add(OKVEDOption, null);
  }
}

function checkFromDate () {
  var f = document.forms['search'];
  if (f.elements['from_day'].value == '' || f.elements['from_month'].value == '' || f.elements['from_year'].value == '') {
    document.getElementById('from_date_div').innerHTML = '';
  } else {
    if ( isDate(f.elements['from_day'].value, f.elements['from_month'].value, f.elements['from_year'].value)) {
        document.getElementById('from_date_div').innerHTML = 'Дата задана правильно';
    } else {
        document.getElementById('from_date_div').innerHTML = 'Неправильная дата!';
    }
  }
}

function checkToDate () {
  var f = document.forms['search'];
  if (f.elements['to_day'].value == '' || f.elements['to_month'].value == '' || f.elements['to_year'].value == '') {
    document.getElementById('to_date_div').innerHTML = '';
  } else {
    if ( isDate(f.elements['to_day'].value, f.elements['to_month'].value, f.elements['to_year'].value)) {
      document.getElementById('to_date_div').innerHTML = 'Дата задана правильно';
    } else {
      document.getElementById('to_date_div').innerHTML = 'Неправильная дата!';
    }
  }
}

function SubmitSearchForm () {
  var f = document.forms['search'];
  var now = new Date();
  if (f.elements['query'].value == '') {
    alert('Вы не указали текст для поиска!');
    return false;
  }
  f.elements['nocache'].value = now.valueOf();
  f.submit();
}

function SubmitSearchFormExt () {
  var f = document.forms['search'];
  var now = new Date();
  if (f.elements['query'].value == '') {
    quest = window.confirm('Вы не указали текст для поиска. Продолжить (OK) или вернуться (Отмена)?');
    if(!quest) { return false; }
  }

  if (f.elements['from_day'].value == '' && f.elements['from_month'].value == '' && f.elements['from_year'].value == '') {
    f.elements['from_day'].value   = '01';
    f.elements['from_month'].value = '01';
    f.elements['from_year'].value  = '1995';
  } else {
    if ( !isDate(f.elements['from_day'].value, f.elements['from_month'].value, f.elements['from_year'].value)) {
      alert('Дата начала периода задана неверно!');
      return false;
    }
  }

  if (f.elements['to_day'].value == '' && f.elements['to_month'].value == '' && f.elements['to_year'].value == '') {
    f.elements['to_day'].value   = '01';
    f.elements['to_month'].value = '01';
    f.elements['to_year'].value  = '2011';
  } else {
    if ( !isDate(f.elements['to_day'].value, f.elements['to_month'].value, f.elements['to_year'].value)) {
      alert('Дата окончания периода задана неверно!');
      return false;
    }
  }

  var fromDate = new Date();
  fromDate.setFullYear(f.elements['from_year'].value);
  fromDate.setMonth(f.elements['from_month'].value - 1);
  fromDate.setDate(f.elements['from_day'].value);

  var toDate = new Date();
  toDate.setFullYear(f.elements['to_year'].value);
  toDate.setMonth(f.elements['to_month'].value - 1);
  toDate.setDate(f.elements['to_day'].value);

  if (fromDate.valueOf() > toDate.valueOf()) {
      alert('Дата окончания периода меньше даты начала периода!');
      return false;
  }
  
  var sel = document.forms["search"].elements["region_selected"];
  if ((sel.options.length == 1) && sel.options[0].value == 0) {
  } else {
    var reg_params = '<input type="hidden" name="region_count" value="' + sel.options.length + '">';
    for (i = 0; i < sel.options.length; i++) {
      reg_params = reg_params + '<input type="hidden" name="region' + i + '" value="' + sel.options[i].value + '">';
    }
    document.getElementById('region_values').innerHTML = reg_params;
  }

    sel = document.forms["search"].elements["okonh_selected"];
    if ((sel.options.length == 1) && sel.options[0].value == 0) {
    } else {
      var okonh_params = '<input type="hidden" name="okonh_count" value="' + sel.options.length + '">';
      for (i = 0; i < sel.options.length; i++) {
        okonh_params = okonh_params + '<input type="hidden" name="okonh' + i + '" value="' + sel.options[i].value + '">';
      }
      document.getElementById('okonh_values').innerHTML = okonh_params;
    }

    sel = document.forms["search"].elements["okved_selected"];
    if ((sel.options.length == 1) && sel.options[0].value == 0) {
    } else {
      var okved_params = '<input type="hidden" name="okved_count" value="' + sel.options.length + '">';
      for (i = 0; i < sel.options.length; i++) {
        okved_params = okved_params + '<input type="hidden" name="okved' + i + '" value="' + sel.options[i].value + '">';
      }
      document.getElementById('okved_values').innerHTML = okved_params;
    }

  f.elements['nocache'].value = now.valueOf();
  f.submit();
}

function clearParams() {  
  xmlHttp = GetXmlHttpObject(); 

  if (xmlHttp == null) { 
    alert ("Ваш браузер не поддерживает HTTP Request");
    return;
  }
 
  var url = "clearparams.jsp"; 
  xmlHttp.onreadystatechange = stateChangedClearParams;
  xmlHttp.open("GET", url, true);
  xmlHttp.send(null);
} 

function stateChangedClearParams() {
  if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete") 
  {  
  }  
} 

function ClearForm () {
  var f = document.forms['search'];
  f.elements['query'].value = '';
  f.elements['query2'].value = '';
  f.elements['st'][0].checked = 1;
  f.elements['sort'].checked = 0;
  f.elements['startat'].value = '0';
  f.elements['maxresults'].value = '10';
  f.elements['doctype0'].checked = 1;
  f.elements['doctype1'].checked = 0;
  f.elements['doctype2'].checked = 0;
  f.elements['doctype3'].checked = 0;
  f.elements['doctype4'].checked = 0;
  f.elements['doctype5'].checked = 0;
  f.elements['doctype6'].checked = 0;
  f.elements['doctype7'].checked = 0;
  f.elements['doctype8'].checked = 0;
  f.elements['doctype9'].checked = 0;
  f.elements['from_day'].value   = '';
  f.elements['from_month'].value = '';
  f.elements['from_year'].value  = '';
  f.elements['to_day'].value   = '';
  f.elements['to_month'].value = '';
  f.elements['to_year'].value  = '';
  f.elements['region_select'].value = '0';
  f.elements['region_selected'].options.length = 0;
  f.elements['branch'][0].checked = 1;
  showOKONH();
  f.elements['okonh_select'].value = '';
  f.elements['okonh_selected'].options.length = 0;
  var OKONHOption = document.createElement("OPTION");
  OKONHOption.text = 'все';
  OKONHOption.value = 0;
  (f.elements['okonh_selected'].options.add) ? f.elements['okonh_selected'].options.add(OKONHOption) : f.elements['okonh_selected'].add(OKONHOption, null);
  f.elements['okved_select'].value = '';
  f.elements['okved_selected'].options.length = 0;
  var OKVEDOption = document.createElement("OPTION");
  OKVEDOption.text = 'все';
  OKVEDOption.value = 0;
  (f.elements['okved_selected'].options.add) ? f.elements['okved_selected'].options.add(OKVEDOption) : f.elements['okved_selected'].add(OKVEDOption, null);
  clearParams();
}

// определение корректности ввода даты
function isDate(dd, mm, yyyy) {
	if ((mm == '') || (dd =='') || (yyyy == ''))
	{
		return '';
	}
	
	if (!checkMonthLength(mm,dd))
	{
		return '';
	}
	if (mm == 2)
	{
		if (!checkLeapMonth(dd,yyyy))
		{
			return '';
		}
	}
	return (dd<10?"0":"")+dd.toString(10)+'/'+(mm<10?"0":"")+mm.toString(10)+'/'+yyyy.toString(10);
}

function checkMonthLength(mm,dd)
{
	if ((mm == 4 || mm == 6 || mm == 9 || mm == 11) && dd > 30)
	{
		return false;
	}
	else if (dd > 31)
	{
		return false;
	}
	return true;
}

function checkLeapMonth(dd,yyyy)
{
	var leap = (yyyy % 400 == 0) || ((yyyy % 100 > 0) && (yyyy % 4 == 0));
	if (!leap && dd > 28)
	{
		return false;
	}
	else if (dd > 29)
	{
		return false;
	}
	return true;
}

function showDocs(docType) {
  if (document.getElementById('doctypes' + docType + '_title')) {
    document.getElementById('doctypes' + docType + '_title').style.display = 'block'; 
    document.getElementById('doctypes' + docType + '_ref').style.display  = 'none'; 
    document.getElementById('doctypes' + docType + '_docs').style.display  = 'block'; 
    document.getElementById('doctypes' + docType + '_count').style.display = 'none'; 
  }
}

function hideDocs(docType) {
  if (document.getElementById('doctypes' + docType + '_title')) {
    document.getElementById('doctypes' + docType + '_title').style.display = 'none'; 
    document.getElementById('doctypes' + docType + '_ref').style.display  = 'block'; 
    document.getElementById('doctypes' + docType + '_docs').style.display  = 'none'; 
    document.getElementById('doctypes' + docType + '_count').style.display = 'block'; 
  }
}

function SetMyValue(myobj, myvalue) { 
  for (i = 0; i < myobj.options.length; i++) { 
    if (myobj.options[i].value == myvalue) { 
      myobj.selectedIndex=i; 
    }
  }
}
