
function checkform(of)
{
  if(!document.getElementById || !document.createTextNode){return;}
  if(!document.getElementById('required')){return;}
  var errorID='errormsg';
  var errorClass='error'
  var errorMsg='Пожалуйста введите или измените поля помеченные - ';
  var errorImg='/img/alert.gif';
  var errorAlt='Ошибка';
  var errorTitle='Это поле содержит ошибку!';
  var reqfields=document.getElementById('required').value.split(',');
  // Oaaeyai noa?ua niiauaiey
  // anee anou noa?ia iiea errormessage, oaaeyai aai
  if(document.getElementById(errorID))
  {
    var em=document.getElementById(errorID);
    em.parentNode.removeChild(em);
  }
  // oaaeyai noa?ua ecia?a?aiea e eeannu
  // a iaycaoaeuiuo aey caiieiaiey iieyo
  for(var i=0;i<reqfields.length;i++)
  {
    var f=document.getElementById(reqfields[i]);
    if(!f){continue;}
    if(f.previousSibling && /img/i.test(f.previousSibling.nodeName))
    {
      f.parentNode.removeChild(f.previousSibling);
    }
    f.className='';
  }
  // ia?aae?aai iaycaoaeuuia iiey
  for(var i=0;i<reqfields.length;i++)
  {
  // i?iaa?yai, nouanoaoao ee yoi iaycaoaeuiia iiea
    var f=document.getElementById(reqfields[i]);
    if(!f){continue;}
  // i?iaa?yai i?aaeeuiinou caiieiaiey iaycaoaeuiuo iieae
// a niioaaonoaee n eo oeiii
    switch(f.type.toLowerCase())
    {
      case 'text':
        if(f.value=='' && f.id!='email'){cf_adderr(f)}
// email — iniaia iiea e o?aaoao eiie i?iaa?ee
        if(f.id=='email' &&
        !cf_isEmailAddr(f.value)){cf_adderr(f)}
      break;
      case 'textarea':
        if(f.value==''){cf_adderr(f)}
      break;
      case 'checkbox':
        if(!f.checked){cf_adderr(f)}
      break;
      case 'select-one':
        if(!f.selectedIndex && f.selectedIndex==0){cf_adderr(f)}
      break;
    }
  }
  return !document.getElementById(errorID);
  /* Tool methods */
  function cf_adderr(o)
  {
  // create image, add to and colourise the error fields
    var errorIndicator=document.createElement('img');
    errorIndicator.alt=errorAlt;
    errorIndicator.src=errorImg;
    errorIndicator.title=errorTitle;
    o.className=errorClass;
    o.parentNode.insertBefore(errorIndicator,o);
	// Check if there is no error message
    if(!document.getElementById(errorID))
    {
    // create errormessage and insert before submit button
      var em=document.createElement('div');
      em.id=errorID;
      var newp=document.createElement('p');
      newp.appendChild(document.createTextNode(errorMsg))
      // clone and insert the error image
      newp.appendChild(errorIndicator.cloneNode(true));
      em.appendChild(newp);
// find the submit button 
      for(var i=0;i<of.getElementsByTagName('input').length;i++)
      {
        if(/submit/i.test(of.getElementsByTagName('input')[i].type))
        {
          var sb=of.getElementsByTagName('input')[i];
          break;
        }
      }
      if(sb)
      {
        sb.parentNode.insertBefore(em,sb);
      }  
    } 
  }
   function cf_isEmailAddr(str) 
  {
      return str.match(/^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/);
  }
}
