var is_ie = (/msie/i.test(navigator.userAgent) && !/opera/i.test(navigator.userAgent));
function GID(id) { return (is_ie) ? document.all[id] : document.getElementById(id); }

var hmVertShift = 32;
function hmDivOn(id) { id.style.visibility = 'visible'; }
function hmDivOff(id) { id.style.visibility = 'hidden'; }
function hmx(e) { return e.offsetLeft+(e.offsetParent!=null&&e.tagName!='BODY'?hmx(e.offsetParent):0); }
function hmy(e) { return e.offsetTop+(e.offsetParent!=null&&e.tagName!='BODY'?hmy(e.offsetParent):0); }
function hmOff(id) { var e = GID(id); e.style.visibility = 'hidden'; }
function hmOn(id,parent) { var e = GID(id); e.style.left = String(hmx(parent))+'px'; e.style.top = String(hmy(parent)+hmVertShift)+'px'; e.style.visibility = 'visible'; }

function checkFlash() {
   var flash_versions = 20; var flash_installed = 0; var flash_version = '0.0'; var java_installed = 0;
   if (navigator.plugins && navigator.plugins.length) {  // Netscape style plugin detection
      for (x = 0; x < navigator.plugins.length; x++) {
         if (navigator.plugins[x].name.indexOf('Shockwave Flash') != -1) {
            flash_version = navigator.plugins[x].description.split('Shockwave Flash ')[1];
            flash_installed = 1;
            break;
         }
      }
      for (x = 0; x < navigator.plugins.length; x++) {
         if (navigator.plugins[x].name.indexOf('Java(TM)') != -1) {
            java_installed = 1;
            break;
         }
      }
   }
   else if (window.ActiveXObject) {  // ActiveX style plugin detection
      for (x = 2; x <= flash_versions; x++) {
         try {
            oFlash = eval("new ActiveXObject('ShockwaveFlash.ShockwaveFlash." + x + "');");
            if (oFlash) {
               flash_installed = 1;
               flash_version = x + '.0';
            }
         }
         catch(e) { }
      }
   }
   return flash_installed;
}

var isFlash = checkFlash();

function fnCheckSearchForm(f) {
   if (!f.search.value.match(/^.+$/)) {
      alert("Укажите поисковый запрос!");
      f.search.focus();
      return false;
   }
   return true;
}

function fnCheckSubscribeForm(f) {
   if (!f.email.value.match(/^[0-9A-Za-z\._-]+@([0-9a-z\._-]+\.)+[a-z]{2,4}$/)) {
      alert("Укажите правильно Ваш e-mail!");
      f.email.focus();
      return false;
   }
   return true;
}

function addToFav() {
   if (window.external) window.external.AddFavorite(location.href, 'ООО «Центр Технологической Информации для Производителей Электроники»');
   else {
      var agt = navigator.userAgent.toLowerCase();
      var is_opera = (agt.indexOf("opera") != -1);
      if (is_opera) alert('Нажмите на кнопку OK, затем на клавиши Ctrl+T.');
      else alert('Нажмите на кнопку OK, затем на клавиши Ctrl+D.');
   }
}

function fnCheckRegistrationForm(f) {
   if (!f.fio.value.match(/^.+$/)) {
      alert("Укажите фамилию!");
      f.fio.focus();
      return false;
   }
   if (!f.fio2.value.match(/^.+$/)) {
      alert("Укажите имя!");
      f.fio2.focus();
      return false;
   }
   if (!f.fio3.value.match(/^.+$/)) {
      alert("Укажите отчество!");
      f.fio3.focus();
      return false;
   }
   if (!f.is_working.checked && !f.is_produce.checked && !f.is_equipment.checked && !f.is_materials.checked && !f.is_delivery.checked && !f.is_delivery2.checked && !f.is_research.checked && !f.is_education.checked && !f.ather_area.value.match(/^.+$/)) {
      alert("Укажите область деятельности компании!");
      f.is_working.focus();
      return false;
   }
   if (!f.email.value.match(/^[0-9A-Za-z\._-]+@([0-9a-z\._-]+\.)+[a-z]{2,4}$/)) {
      alert("Укажите правильно Ваш e-mail!");
      f.email.focus();
      return false;
   }
   if (!f.login.value.match(/^[0-9A-Za-z_]+$/)) {
      alert("Укажите желаемый логин. Логин может состоять только из цифр, латинских букв и символа \"_\"!");
      f.login.focus();
      return false;
   }
   if (!f.password.value.match(/^[0-9A-Za-z_]+$/)) {
      alert("Укажите желаемый пароль. Пароль может состоять только из цифр, латинских букв и символа \"_\"!");
      f.password.focus();
      return false;
   }
   if (!f.re_password.value.match(/^.+$/)) {
      alert("Подтвердите введённый пароль!");
      f.re_password.focus();
      return false;
   }
   if (f.password.value != f.re_password.value) {
      alert("Пароль и подтверждение пароля не совпадают!");
      f.re_password.focus();
      return false;
   }
   if (!f.nikname.value.match(/^.+$/)) {
      alert("Укажите желаемое имя для форума!");
      f.nikname.focus();
      return false;
   }
   if (!f.where_from.value.match(/^.+$/)) {
      alert("Укажите как Вы узнали о портале!");
      f.where_from.focus();
      return false;
   }
   return true;
}

function showForm(val) {
   if (val == 0) {
      var q = GID('author');
      q.style.display = 'none';
      q = GID('reg');
      q.style.display = 'none';
   }
   else if (val == 1) {
      var q = GID('author');
      q.style.display = 'block';
      q = GID('reg');
      q.style.display = 'none';
   }
   else if (val == 2) {
      var q = GID('author');
      q.style.display = 'none';
      q = GID('reg');
      q.style.display = 'block';
   }
}

function fnCheckBoardForm(f) {
   if (f.status.value == 0) {
      alert("Укажите свой статус!");
      f.status.focus();
      return false;
   }
   if (f.text.value == '') {
      alert("Укажите текст объявления!");
      f.text.focus();
      return false;
   }
   if (!f.days.value.match(/^([0-9]+)$/)) {
      alert("Укажите кол-во дней активности объявления!");
      f.days.focus();
      return false;
   }
   if (f.days.value < 7 || f.days.value > 60) {
      alert("Кол-во дней активности объявления должно быть в диапазоне от 7 до 60!");
      f.days.focus();
      return false;
   }
   if (!f.code.value.match(/^([0-9]+)$/)) {
      alert("Укажите код!");
      f.code.focus();
      return false;
   }
   if (f.status.value == 1) {
      if (!f.logon_login.value.match(/^([0-9a-zA-Z_]+)$/)) {
         alert("Укажите логин. Логин может состоять только из цифр, латинских букв и символа \"_\"!");
         f.logon_login.focus();
         return false;
      }
      if (!f.logon_passwd.value.match(/^([0-9a-zA-Z_]+)$/)) {
         alert("Укажите пароль. Пароль может состоять только из цифр, латинских букв и символа \"_\"!");
         f.logon_passwd.focus();
         return false;
      }
   }
   if (f.status.value == 2) {
      return fnCheckRegistrationForm(f);
   }
   return true;
}

function fnCheckMailForm(f, flag) {
   if (f.status.value == 0 && flag == 1) {
      alert("Укажите свой статус!");
      f.status.focus();
      return false;
   }
   if (f.question.value == '') {
      alert("Укажите вопрос!");
      f.question.focus();
      return false;
   }
   if (!f.code.value.match(/^([0-9]+)$/)) {
      alert("Укажите код!");
      f.code.focus();
      return false;
   }
   if (flag == 1) {
      if (f.status.value == 1) {
         if (!f.logon_login.value.match(/^([0-9a-zA-Z_]+)$/)) {
            alert("Укажите логин. Логин может состоять только из цифр, латинских букв и символа \"_\"!");
            f.logon_login.focus();
            return false;
         }
         if (!f.logon_passwd.value.match(/^([0-9a-zA-Z_]+)$/)) {
            alert("Укажите пароль. Пароль может состоять только из цифр, латинских букв и символа \"_\"!");
            f.logon_passwd.focus();
            return false;
         }
      }
      if (f.status.value == 2) {
         return fnCheckRegistrationForm(f);
      }
   }
   return true;
}

// ======= Новая функция, проверяющая форму вопроса

function fnCheckAskqForm(f, flag) {
   if (f.question.value == '') {
      alert("Пожалуйста, напишите вопрос");
      f.question.focus();
      return false;
   }
   if (!f.code.value.match(/^([0-9]+)$/)) {
      alert("Пожалуйста, укажите код");
      f.code.focus();
      return false;
   }
   if (!f.fio.value.match(/^.+$/)) {
      alert("Пожалуйста, укажите Вашу фамилию");
      f.fio.focus();
      return false;
   }
   if (!f.fio2.value.match(/^.+$/)) {
      alert("Пожалуйста, укажите Ваше имя!");
      f.fio2.focus();
      return false;
   }
   if (!f.email.value.match(/^[0-9A-Za-z\._-]+@([0-9a-z\._-]+\.)+[a-z]{2,4}$/)) {
      alert("Пожалуйста, проверьте правильность ввода адреса электронной почты");
      f.email.focus();
      return false;
   }
   return true;
}

// ==========================

function showTree(id, flag) {
   var nameT = 'tree'+id.toString();
   var tree = GID(nameT);
   if (tree == null) return;
   if (flag == 0) tree.style.display = 'none';
   if (flag == 1) tree.style.display = 'block';
   var namePMT = 'plusMinusTree'+id.toString();
   var PMtree = GID(namePMT);
   if (flag == 0) PMtree.innerHTML = '<a href="classes_'+id.toString()+'.htm" title="Развернуть" onClick="showTree('+id.toString()+', 1); return false;">+</a>';
   if (flag == 1) PMtree.innerHTML = '<a href="classes_'+id.toString()+'.htm" title="Свернуть" onClick="showTree('+id.toString()+', 0); return false;">-</a>';
}

function fnCheckTopicForm(form_name) {
   if (!form_name.title.value.match(/^.+$/)) {
      alert("Укажите тему сообщения!");
      form_name.title.focus();
      return false;
   }
   if (form_name.text.value == '') {
      alert("Укажите текст сообщения!");
      form_name.text.focus();
      return false;
   }
   return true;
}

function checkPager(f) {
   if (!f.count.value.match(/([1-9][0-9]*)/)) {
      alert("Укажите кол-во ссылок на странице числом!");
      f.count.focus();
      return false;
   }
   return true;
}

function fnCheckMarksForm(f) {
   if (f.mark1.value == 0 && f.mark2.value == 0 && f.mark3.value == 0) {
      alert("Оцените материал по одной из категорий!");
      f.comment.focus();
      return false;
   }
   return true;
}

function fnCheckFormMoreSearchChecked(obj) {
   for (i = 0; i < obj.length; i++) {
      if (obj[i].type == "checkbox") {
         if (!obj[i].checked) obj[i].checked = true;
         else obj[i].checked = false;
      }
   }
}