function validEmail(theEntry) {
  badEntry = false
  invalidChars = " /:,;"
  if (theEntry == "") { 
    badEntry = true
  }
  for (i=0; i < 5; i++)  {
    badChar = invalidChars.charAt(i)
    if (theEntry.indexOf(badChar,0) > -1) {
      badEntry = true
    }
  }  
  atsignLoc = theEntry.indexOf("@",1)
  if (atsignLoc == -1) {
    badEntry = true
  }     
  if (theEntry.indexOf("@",atsignLoc+1) > -1) {
    badEntry = true
  }
  dotLoc = theEntry.indexOf(".",atsignLoc)
  if (dotLoc == -1) {
    badEntry = true
  }
  if (dotLoc+3 > theEntry.length) {
    badEntry = true
  }
  return badEntry
}

function ValidateForm(oForm) {
  var oFocusItem = null; 
  var sMessage = new String;
  var bPassed = true; 
  var oItems = oForm.elements;
  for (var i = 0; i < oItems.length; i++) {
    if ( (oItems.item(i).className.indexOf('requiredfield') > -1) ) {
      if ( oItems.item(i).value.length < 1) { 
        oItems.item(i).className += ' invalidfield';
        if ( !oFocusItem ) oFocusItem = oItems.item(i);
        bPassed = false;
        sMessage = 'Вы должны заполнить все обязательные поля.';
      } else if ( oItems.item(i).className.indexOf(' invalidfield') > -1) {
        oItems.item(i).className = 'requiredfield';
      }
    }
    if ( (oItems.item(i).className.indexOf('money') > -1) ) {
      re = /^\d+\.?\d*$/;
      if (!re.test(oItems.item(i).value)){
        oItems.item(i).className += ' invalidmoney';
        if ( !oFocusItem ) oFocusItem = oItems.item(i);
        bPassed = false;
        sMessage = 'Вы должны заполнить все обязательные поля.';
      } else if ( oItems.item(i).className.indexOf(' invalidmoney') > -1) {
        oItems.item(i).className = 'money';
      }
    }
    if ( (oItems.item(i).className.indexOf('digit') > -1) ) {
      re = /^\d{1,10}$/;
      if (!re.test(oItems.item(i).value)){
        oItems.item(i).className += ' invaliddigit';
        if ( !oFocusItem ) oFocusItem = oItems.item(i);
        bPassed = false;
        sMessage = 'Вы должны заполнить все обязательные поля.';
      } else if ( oItems.item(i).className.indexOf(' invaliddigit') > -1) {
        oItems.item(i).className = 'digit';
      }
    }
  }
  if (oForm.email && (oForm.email.className.indexOf('requiredfield') > -1) && validEmail(oForm.email.value)) {
    oForm.email.className += ' invalidfield';
    if (sMessage == "") sMessage = 'Ошибочный формат email';
    if ( !oFocusItem ) oFocusItem = oForm.email;
    bPassed = false;
  };
  if ( !bPassed ) {
    if ( oFocusItem ) oFocusItem.focus();
    alert(sMessage);
  };
  return bPassed;
}

function ValidateReaction(oForm){
  var res = true;
  if (oForm.msg.value == ''){
    alert('Не заполнено поле отзыва');
    res = false;
  }
  if (res && !oForm.agree.checked){
    alert('Вы не ознакомились с правилами размещения отзывов');
    res = false;
  }
  if (res && (oForm.email.value != '') && validEmail(oForm.email.value)){
    alert('Ошибочный формат email');
    res = false;
  }
  if (res && (oForm.code.value.length != 7)){
    alert('Ошибочный код защиты от спама');
    res = false;
  }
  return res;
}

function StarOver(nom){
  for (j=1; j<=nom; j++){
    obj = document.getElementById("st"+j);
    if (obj) obj.src = "i/star-on.jpg";
  }
  for (j=nom+1; j<=10; j++){
    obj = document.getElementById("st"+j);
    if (obj) obj.src = "i/star-off.jpg";
  }
  frm.rate.value=nom;
}