function isEmail (s)
{   
    s = s.replace(/^[ \t\r\n]+/ig, '');
    s = s.replace(/[ \t\r\n]+$/ig, '');    
    emailRE = /^[-!#$%&\'*+\\.\/0-9=?A-Z^_`a-z{|}~]+@[-0-9A-Za-z]+\.[-\.0-9A-Za-z]+$/ig;    
    return (s.search(emailRE) == -1) ? false : true;
}


function validateForm(frm, forceSubmit)
{
   if (forceSubmit == undefined) {
      forceSubmit = true;
   }
   var valid = true;
   var msg = 'Некорректно заполнено обязательное поле';
   for (i = 0; i < frm.elements.length; i++) {
      valid = true;
      if(frm.elements[i].getAttribute('disabled') || frm.elements[i].getAttribute('disabled') === ""){
      	continue;
      }
      if (frm.elements[i].getAttribute('required')) {
         var field = document.getElementById('fieldname_' + frm.elements[i].getAttribute('name'));
         if (field == undefined) {
            field = document.getElementById('for_' + frm.elements[i].getAttribute('id'));
            if (!field){
            	var fieldName = frm.elements[i].getAttribute('name');
            }else{
            	var name = (field.innerHTML).split("(");
            	if( typeof(name) == 'object'){
            		var fieldName = name[0];
            	}else{
            		var fieldName = field.innerHTML;
            	}
            	 
            }
            
         } else {
            var fieldName = field.innerHTML;
            requiredMarkEl = document.getElementById('required_field_mark');
            fieldName = fieldName.replace(requiredMarkEl.innerHTML, '');
            fieldName = fieldName.replace(/^\s+/ig, '');
            fieldName = fieldName.replace(/\s+$/ig, '');
         }

         if (frm.elements[i].getAttribute('validate') == 'email' && !isEmail(frm.elements[i].value)) {
            valid = false;
            msg = 'Поле "' + fieldName + '" не является корректным email-адресом.';
         } else if (frm.elements[i].value == '') {
            valid = false;
            msg = 'Поле "' + fieldName + '" является обязательнным.';
         }
         if (!valid) {
            alert(msg);
            frm.elements[i].focus();
            return false;
         }
      }
   }
   if (forceSubmit) {
      frm.submit();
   } else {
      return true;
   }
}

function markRequiredFields(frm, position)
{
   if (position == undefined) {
      position = 'before'
   }
   for (i = 0; i < frm.elements.length; i++) {
      if (frm.elements[i].getAttribute('required')) {
         fieldNameEl = document.getElementById('fieldname_' + frm.elements[i].getAttribute('name'));
         requiredMarkEl = document.getElementById('required_field_mark');
         if (position == 'before') {
            fieldNameEl.innerHTML = requiredMarkEl.innerHTML + ' ' + fieldNameEl.innerHTML;
         } else {
            fieldNameEl.innerHTML = fieldNameEl.innerHTML + ' ' + requiredMarkEl.innerHTML;
         }
      }
   }
}

function ajaxSendForm(oForm) {
    oForm.target = 'hidden_frame';

    var isAjaxInpExist = false;
    for (var i = 0; i < oForm.elements.length; i++) {
        if (oForm.elements[i].name == 'is_ajax') {
            isAjaxInpExist = true;
            break;
        }
    }
    if (!isAjaxInpExist) {
        var oInput   = document.createElement('input');
        oInput.type  = 'hidden';
        oInput.name  = 'is_ajax';
        oInput.value = '1';
        oForm.appendChild(oInput);
    }
    oForm.submit();

    oInput.parentNode.removeChild(oInput);
    oForm.target = '';
}



